PHP7 및 다양한 확장 기능을 설치하는 과정에서 소스 코드에서 설치하면 make가 성공한 후 항상 프롬프트가 표시된다는 것을 알 수 있습니다. 'make test'를 실행하는 것을 잊지 마세요. PHP 자동 테스트를 실행합니다.
방금 PHP7을 설치하고 직접 make 테스트를 실행하면 오랜 대기 시간이 지난 후 최종 통계 결과는 아마도 다음과 같을 것입니다.
건너뛰기와 실패가 너무 많을 것입니다. . 설치하지 않은 확장 기능이 있다는 의미이며, 관련 환경의 구성도 최적화해야 합니다
그러나 일반적으로 말하면, 특히 테스트 스크립트를 너무 많이 실행할 필요는 없습니다. 단일 확장자에서는 관련 인터페이스만 테스트하므로 테스트 스크립트를 독립적으로 실행하는 방법을 자세히 살펴보겠습니다.
먼저 PHP Makefile을 열고 make test가 무엇을 하는지 살펴보겠습니다
<code>test: all @if test ! -z "$(PHP_EXECUTABLE)" && test -x "$(PHP_EXECUTABLE)"; then \ INI_FILE=`$(PHP_EXECUTABLE) -d 'display_errors=stderr' -r 'echo php_ini_loaded_file();' 2> /dev/null`; \ if test "$$INI_FILE"; then \ $(EGREP) -h -v $(PHP_DEPRECATED_DIRECTIVES_REGEX) "$$INI_FILE" > $(top_builddir)/tmp-php.ini; \ else \ echo > $(top_builddir)/tmp-php.ini; \ fi; \ INI_SCANNED_PATH=`$(PHP_EXECUTABLE) -d 'display_errors=stderr' -r '$$a = explode(",\n", trim(php_ini_scanne d_files())); echo $$a[0];' 2> /dev/null`; \ if test "$$INI_SCANNED_PATH"; then \ INI_SCANNED_PATH=`$(top_srcdir)/build/shtool path -d $$INI_SCANNED_PATH`; \ $(EGREP) -h -v $(PHP_DEPRECATED_DIRECTIVES_REGEX) "$$INI_SCANNED_PATH"/*.ini >> $(top_builddir)/tmp -php.ini; \ fi; \ TEST_PHP_EXECUTABLE=$(PHP_EXECUTABLE) \ TEST_PHP_SRCDIR=$(top_srcdir) \ CC="$(CC)" \ $(PHP_EXECUTABLE) -n -c $(top_builddir)/tmp-php.ini $(PHP_TEST_SETTINGS) $(top_srcdir)/run-tests.php -n -c $(top_builddir)/tmp-php.ini -d extensi/modules/ $(PHP_TEST_SHARED_EXTENSIONS) $(TESTS); \ TEST_RESULT_EXIT_CODE=$$?; \ rm $(top_builddir)/tmp-php.ini; \ exit $$TEST_RESULT_EXIT_CODE; \ else \ echo "ERROR: Cannot run tests without CLI sapi."; \ fi</code>
먼저 해당 변수의 정의에 대해 걱정하지 마십시오. 핵심 내용은 다음 문장입니다.
<code>$(PHP_EXECUTABLE) -n -c $(top_builddir)/tmp-php.ini $(PHP_TEST_SETTINGS) $(top_srcdir)/run-tests.php -n -c $(top_builddir)/tmp-php.ini -d extensi/modules/ $(PHP_TEST_SHARED_EXTENSIONS) $(TESTS);</code>
루트 디렉토리에서 run-tests.php를 실행하면 자동 테스트가 수행됩니다. PHP 소스 코드는 일반적으로 테스트 폴더
php 설치 디렉터리에서 ./tests/basic을 열면 그 안에 몇 가지 phpt 파일이 있습니다. 이것들은 하나씩 테스트 스크립트입니다.<code>--TEST-- Trivial "Hello World" test --FILE-- <?php echo "Hello World"?> --EXPECT-- Hello World</code>
우선 무엇보다도 관련 환경 변수를 설정하고 테스트 개체 PHP를 지정해야 합니다. 여기서 포스터는
경로 아래의
php 설치
export TEST_PHP_EXECUTABLE=/usr/local/php7/bin을 사용합니다. /php
그런 다음 PHP 설치 루트 디렉터리에서
php run-tests.php ./tests/basic/001.phpt아무 일도 일어나지 않으면 다음과 같은 결과를 얻을 수 있습니다
위 내용은 PHP7 확장 기능의 자동화된 테스트를 소개했으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.