将PHPUnit测试打包为PHAR存档?
作者:互联网
是否可以将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能理解PHAR存档中的测试. PHPUnit不仅解释传递的文件并运行测试;它读取要运行的测试的源,然后执行它.因此,当它寻找MyTestClass的源代码时,它无法找到它,因为它已经包含在存档中.
标签:php,phpunit,php-5-2,phar 来源: https://codeday.me/bug/20190705/1384746.html