PDO のドライバをリリースする前には「コア」テストをパスする必要があります。 このテストは PHP のソース配布物から実行するように設計されており、 ドライバのテストを行うには多少の手続きが必要になります。最新の PHP 5.1 スナップショットを取得し、以下の手順で進めることを推奨します。
$ cp -r pdo_SKEL /path/to/php-5.1/ext |
これにより、テストを実行するためのハーネスをセットします。 次にすべきことは、PDO の共通コアテストにリダイレクトするテストを 作成することです。このファイルの名前は common.phpt とし、 ext_skel で雛形を作成したときに同時に作成された tests ディレクトリの中に置かなければなりません。 このファイルの中身は以下のようになります。
--TEST-- SKEL --SKIPIF-- <?php # vim:ft=php if (!extension_loaded('pdo_SKEL')) print 'skip'; ?> --REDIRECTTEST-- if (false !== getenv('PDO_SKEL_TEST_DSN')) { # user set them from their shell $config['ENV']['PDOTEST_DSN'] = getenv('PDO_SKEL_TEST_DSN'); $config['ENV']['PDOTEST_USER'] = getenv('PDO_SKEL_TEST_USER'); $config['ENV']['PDOTEST_PASS'] = getenv('PDO_SKEL_TEST_PASS'); if (false !== getenv('PDO_SKEL_TEST_ATTR')) { $config['ENV']['PDOTEST_ATTR'] = getenv('PDO_SKEL_TEST_ATTR'); } return $config; } return array( 'ENV' => array( 'PDOTEST_DSN' => 'SKEL:dsn', 'PDOTEST_USER' => 'username', 'PDOTEST_PASS' => 'password' ), 'TESTS' => 'ext/pdo/tests' ); |
これは共通コアテストを実行し、 PDOTEST_DSN、PDOTEST_USER および PDOTEST_PASS をそれぞれ PDO コンストラクタの パラメータ dsn、username および password として渡します。 テストハーネスの実行時には、まずはじめに環境変数をチェックします。 もし存在すれば、テストファイル内にハードコーディングされた条件の かわりにそれらの適切な値を渡すようにします。
テストハーネスは以下のように起動します。
$ cd /path/to/php-5.1 $ make TESTS=ext/pdo_SKEL/tests PDO_SKEL_TEST_DSN="skel:dsn" \ PDO_SKEL_TEST_USER=user PDO_SKEL_TEST_PASS=pass test |