2010-04-23 84 views
4

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

回答

2

我不認爲PHPUnit理解PHAR存檔中的測試。 PHPUnit不僅解釋傳遞的文件並運行測試;它讀取要運行的測試源並執行它。因此,當它尋找MyTestClass的源代碼時,它無法找到它,因爲它被封裝在歸檔中。