Переопределение «@ package_version @» в выводе PHPUnit при установке из репозитория Git - PullRequest
3 голосов
/ 06 мая 2011

Я добавил PHPUnit в проект через git submodule add в соответствии с инструкциями в этого сообщения в блоге .Все работает прекрасно, за исключением того, что вывод в верхней части каждого выполнения выглядит следующим образом:

PHPUnit @ package_version @ от Себастьяна Бергманна.

Похоже, что PEAR заменяет этозначение с номером версии во время процесса установки, что мне мало помогает, так как я использую Git для установки файлов.

Кто-нибудь сталкивался с этой проблемой, и как вы ее решили / обошла?

Ответы [ 4 ]

1 голос
/ 29 сентября 2012

Похоже, это больше не нужно. Из журнала изменений PHPUnit 3.7.1 :

Номер версии теперь отображается при использовании PHPUnit из установки Composer или проверки Git.

1 голос
/ 06 мая 2011

Вы довольно ответили на все вопросы. Это не ошибка, это особенность - строка @ package_version @ является заполнителем, который заменяется при установке пакета через PEAR.

Поскольку вы используете версию, предназначенную для разработки (клон репозитория из GitHub), вы должны быть готовы к таким проблемам.

Если вам нужна определенная версия, установите эту конкретную версию через PEAR.

Я могу подумать о некотором хуке после оформления заказа, который заменит строку хэшем ревизии sha1, но это не очень полезно.

Итак, в одном предложении - так и должно быть.

0 голосов
/ 27 января 2012

Это мой обходной путь, и да, он не супер-чистый;)

Я отредактировал свой файл phpunit, не забудьте заменить его на собственные пути:

#!/usr/bin/env php
<?php
while (substr(getcwd(), -3) != "Project_Folder") chdir('../');
if (in_array('--version', $argv)) {
    echo 'PHPUnit 3.6.0 by Sebastian Bergmann.';
    return;
}
// set main method
define('PHPUnit_MAIN_METHOD','PHPUnit_TextUI_Command::main');

// add phpunit to the include path
$paths = scandir('./var/lib/phpunit');
$includes = array();

foreach($paths as $path){
    if (!preg_match('/^\./', $path)){
        $includes[] = './var/lib/phpunit/' . $path;
    }
}
set_include_path(implode(PATH_SEPARATOR,$includes).PATH_SEPARATOR.get_include_path());

// set the auto loader
require 'PHPUnit/Autoload.php';
// execute
PHPUnit_TextUI_Command::main();
0 голосов
/ 18 мая 2011

Как только это произойдет, проект, над которым я работаю, будет распространяться через PEAR, поэтому я просто перечислю PHPUnit как зависимость в файле package.xml.Это также даст пользователю некоторую гибкость в отношении того, с какой версией PHPUnit он хотел бы запускать свои тесты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...