2010-04-23 7 views
4

PHPUnit 테스트를 PHAR 아카이브로 패키지화하고 phpunit을 사용하여 실행할 수 있습니까?PHPUnit 테스트를 PHAR 아카이브로 패키징 하시겠습니까?

나는 다음과 스크립트와 .phar 만들었습니다

phpunit mytests-archive.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(); 
?> 

을하지만 난 후 다음과 같이 결과 아카이브를 실행하려고 할 때

#! /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의 소스를 찾으면 아카이브 내부에 포장되어 있으므로 찾을 수 없습니다.