将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的源代码时,它无法找到它,因为它被封装在归档中。