PHP7 拡張機能の自動テスト

WBOY
WBOYオリジナル
2016-07-29 08:56:441033ブラウズ

PHP7 とさまざまな拡張機能をインストールするプロセスで、ソース コードからインストールする場合、make が成功した後に必ずプロンプトが表示されることに気づくでしょう: この make test を実行することを忘れないでください。 PHP 自動テスト。

PHP7 をインストールして make test を直接実行した場合、長い待ち時間の後、最終的な統計結果は次のようになります:
PHP7 拡張機能の自動テスト
非常に多くのスキップと失敗があり、いくつかの拡張機能があることを示しています。インストールされていない環境や関連する環境の構成も最適化する必要があります

しかし、一般的に言えば、特に単一の拡張機能の場合、それほど多くのテスト スクリプトを実行する必要はなく、関連するインターフェイスをテストするだけで済みます。そのため、その方法を詳しく見てみましょう。テストスクリプトを独立して実行するには

まず第一に、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ファイルを一つずつテストしていきます
PHP7 拡張機能の自動テスト

スクリプトの内容はとてもシンプルです 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を指定し、最終結果を計算します。 PHP7 拡張機能の自動テスト

OneAPM for PHP は、すべての PHP アプリケーションに深く入り込んで、コードレベルのパフォーマンス問題の可視化、パフォーマンスのボトルネックの迅速な特定と追跡、実際のユーザー エクスペリエンスの監視、サーバーの監視、エンドツーアプリケーションのパフォーマンス管理を終了します。さらに技術的な記事を読むには、OneAPM 公式技術ブログにアクセスしてください。

この記事はOneAPM公式ブログからの転載です

上記では、PHP 7 拡張機能の自動テストをその側面も含めて紹介しましたが、PHP チュートリアルに興味のある友人に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。