PHP7 とさまざまな拡張機能をインストールするプロセスで、ソース コードからインストールする場合、make が成功した後に必ずプロンプトが表示されることに気づくでしょう: この make test を実行することを忘れないでください。 PHP 自動テスト。
PHP7 をインストールして make test を直接実行した場合、長い待ち時間の後、最終的な統計結果は次のようになります:
非常に多くのスキップと失敗があり、いくつかの拡張機能があることを示しています。インストールされていない環境や関連する環境の構成も最適化する必要があります
しかし、一般的に言えば、特に単一の拡張機能の場合、それほど多くのテスト スクリプトを実行する必要はなく、関連するインターフェイスをテストするだけで済みます。そのため、その方法を詳しく見てみましょう。テストスクリプトを独立して実行するには
まず第一に、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>
。自動テストは、PHP ソース コードのルート ディレクトリ .php で run-tests を実行することで行われます。テスト スクリプトは通常、tests フォルダーに配置されます
PHP インストール ディレクトリの ./tests/basic を開くだけです。その中のphptファイルを一つずつテストしていきます
スクリプトの内容はとてもシンプルです 001.phptの内容はこんな感じです
<code>--TEST-- Trivial "Hello World" test --FILE-- <?php echo "Hello World"?> --EXPECT-- Hello World</code>
まずは001.phptだけを実行してみましょう。ここでは、ポスターはパスの下でインストール
php
export TEST_PHP_EXECUTABLE=/usr/local/php7/bin/phpを使用し、実行します。
php run-tests.php ./tests/basic/001.phpt を PHP インストール ルート ディレクトリに配置します
予期せぬことが何も起こらなければ、次の結果が得られます
このようにして、次のようなスクリプトを書くことができますテストするphptを指定し、最終結果を計算します。
上記では、PHP 7 拡張機能の自動テストをその側面も含めて紹介しましたが、PHP チュートリアルに興味のある友人に役立つことを願っています。