ビルド
パッケージングおよび配布
PDO ドライバ How-To
PHP Manual

## テスト

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

ビルド
パッケージングおよび配布
PDO ドライバ How-To
PHP Manual