将PHPUnit测试打包为PHAR存档?

将PHPUnit测试打包为PHAR存档?

问题描述:

是否可以将PHPUnit测试打包为PHAR存档,并使用phpunit运行它们?将PHPUnit测试打包为PHAR存档?

我创建与后续的脚本.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理解PHAR存档中的测试。 PHPUnit不仅解释传递的文件并运行测试;它读取要运行的测试源并执行它。因此,当它寻找MyTestClass的源代码时,它无法找到它,因为它被封装在归档中。