Я успешно установил PHPCI на моем локальном сервере настройте проект и запустите мою первую сборку.
Даже без phpci.yml PHP CI, кажется, обнаруживает мои тесты Codeception (ууу!)
Тем не менее, журнал сборки содержит следующий текст
Исключение: Предупреждение: file_get_contents (/tests/_output/report.tap.log): не удалось открыть поток: нет такого файла или каталога в строке /path/to/Sites/php-ci/phpci/PHPCI/Plugin/Codeception.php 94
ПЛЮГИН: НЕ УДАЛ
Когда я смотрю на строку 94, я вижу следующее
$tapString = file_get_contents(
$this->phpci->buildPath . $this->logPath . DIRECTORY_SEPARATOR . 'report.tap.log'
);
PHPCI, кажется, строит путь с $this->phpci->buildPath
,
Что это за путь? Это путь PHP CI? Путь моего хранилища? Третья рабочая зона, которая может быть где угодно?
Где в PHP CI мне установить этот путь? За проект в phpci.yml
? Где-то в админке?
Я нашел ваш вопрос в поиске ответов относительно PHPCI.
Я не знаю, нужен ли вам еще ваш ответ, но я опубликую его для всех, кому интересно.
Чтобы ответить на ваши вопросы:
«Где в PHP CI мне установить этот путь?»
Что ж, чтобы ответить на этот вопрос, я углубился в их исходный код и обнаружил, что исходный путь определяется следующим кодом PHP:
$buildDirectory = $this->getId() . '_' . substr(md5(microtime(true)), 0, 5);
$this->currentBuildPath = PHPCI_BUILD_ROOT_DIR . $buildDirectory . DIRECTORY_SEPARATOR;
Таким образом, сгенерированный путь будет идентификатором сборки и (более или менее) уникальной частью. Важным здесь является определенная константа PHPCI_BUILD_ROOT_DIR
который определен в файле vars.php
в вашем каталоге установки:
// Define PHPCI_BUILD_ROOT_DIR
if (!defined('PHPCI_BUILD_ROOT_DIR')) {
define('PHPCI_BUILD_ROOT_DIR', PHPCI_DIR . 'PHPCI/build/');
}
Таким образом, каталог по умолчанию будет временной папкой
path/to/phpci/PHPCI/build/4_31370/
Эта папка, конечно же, будет снова удалена, как только сборка будет завершена.
Затем я изменил определение папки на
define('PHPCI_BUILD_ROOT_DIR', PHPCI_DIR . 'tempbuilddir/');
который дает мне следующую временную директорию сборки:
path/to/phpci/tempbuilddir/6_65873/
Так что этот каталог полностью настраиваемый.
Тем не менее, плагин Codeception, похоже, изменился с вашей версии, так как имя файла report.tap.log
кажется, не в исходном коде больше.
Я надеюсь, что этот ответ дал вам понимание конфигурации директории сборки PHPCI. Это, безусловно, помогло мне узнать это.
Других решений пока нет …