是否可以将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)

最佳答案

我不认为普普尼特了解药典档案里的测试。phpunit不只是解释通过的文件并运行测试;它读取要运行的测试的源代码,然后执行它。所以当它寻找mytestClass的源代码时,它无法找到它,因为它被打包在归档文件中。

关于php - 将PHPUnit测试打包为PHAR存档?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2699844/

10-16 13:29