4

PHPUnit テストをPHARアーカイブとしてパッケージ化し、phpunit を使用して実行することは可能ですか?

次のスクリプトで .phar を作成しました。

<?php
$cPhar = new Phar('mytests-archive.phar', 0);
$cPhar->addFile('mytest.php');

$sStub = <<<ENDSTUB
#! /usr/bin/php
<?php
Phar::mapPhar('mytest-archive.phar');
require 'phar://mytests-archive.phar/mytest.php';
__HALT_COMPILER();
ENDSTUB;

$cPhar->setStub($sStub);
$cPhar->compressFiles(Phar::GZ);
$cPhar->stopBuffering();
?>

しかし、結果のアーカイブを次のように実行しようとすると、次のようになります。

phpunit mytests-archive.phar

エラーメッセージが表示されます:

#! /usr/bin/php
PHPUnit 3.3.17 by Sebastian Bergmann.

Class MyTestClass could not be found in /path/to/mytests-archive.phar

PHPUnit は PHAR ファイルをサポートしていませんか、それともビルド スクリプトに手順がありませんか? (PHAR を使用するのはこれが初めての試みです)

4

1 に答える 1

2

PHPUnitはPHARアーカイブにあるテストを理解していないと思います。PHPUnitは、渡されたファイルを解釈してテストを実行するだけではありません。実行するテストのソースを読み取り、実行します。そのため、MyTestClassのソースを探しに行くと、アーカイブ内にラップされているため、それを見つけることができません。

于 2010-07-24T18:43:43.180 に答える