作曲家什么是 PHP CI 构建路径


composer What's a 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中的每个项目 ?在管理员的某个地方?

我在寻找有关 PHPCI 的答案时发现了您的问题。

我不知道你是否还需要你的答案,但我会把它发布给其他想知道的人。

要回答您的问题:

  • "这条路是什么?"它是每个生成的唯一生成路径。
  • "是PHP CI路径吗?"
  • "我的仓库路径?"
  • "第三个工作区域,可以在任何地方?"不完全是任何地方,但是是的。

"我在 PHP CI 中的什么位置设置此路径?"
好吧,为了回答这个问题,我深入研究了他们的源代码,我发现原始路径是由以下PHP代码设置的:

 $buildDirectory = $this->getId() . '_' . substr(md5(microtime(true)), 0, 5);
 $this->currentBuildPath = PHPCI_BUILD_ROOT_DIR . $buildDirectory . DIRECTORY_SEPARATOR;

因此,生成的路径将是构建的 ID 和(或多或少)唯一部分。 这里重要的是定义的常量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 构建目录配置。它当然帮助我找到了答案。