композитор Что такое PHP CI Build Path

Я успешно установил 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? Где-то в админке?

0

Решение

Я нашел ваш вопрос в поиске ответов относительно PHPCI.

Я не знаю, нужен ли вам еще ваш ответ, но я опубликую его для всех, кому интересно.

Чтобы ответить на ваши вопросы:

  • «Что это за путь?» Это уникально сгенерированный путь для каждой сборки.
  • «Это путь PHP CI?» нет
  • «Путь моего хранилища?» нет
  • «Третья рабочая зона, которая может быть где угодно?» Не везде, но да.

«Где в 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. Это, безусловно, помогло мне узнать это.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]