Упаковка тестов PHPUnit в архив PHAR? - PullRequest
4 голосов
/ 23 апреля 2010

Можно ли упаковать тесты 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)

1 Ответ

2 голосов
/ 24 июля 2010

Я не думаю, что PHPUnit понимает тесты, которые находятся в архиве PHAR. PHPUnit не просто интерпретирует переданный файл и запускает тесты; он читает источник теста, который должен быть запущен, а затем выполняет его. Поэтому, когда он ищет источник MyTestClass, он не может найти его, поскольку он находится внутри архива.

...