php - 将 PHPUnit 测试打包为 PHAR 存档?

标签 php phpunit php-5.2 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 测试打包为 PHAR 存档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2699844/

相关文章:

5.2 中的 php dateTime::createFromFormat?

php - Laravel 忽略更改器(mutator)

php - 正则表达式 - 负前瞻性转义

php - 有什么方法可以检查迁移是否结束

php - 按顺序比较PHP中数组的最有效方法?

eclipse - Eclipse PDT和PHPUnit?

php - 父静态函数调用静态子变量

php - 如何从数据库构建 "child-parent"树/嵌套数组?

mocking - 模拟类 : methods hinting

php - 在 PHP 5.3 之前的数组中关闭对象