什么是PHP CI构建路径

时间:2016-03-17 02:00:23

标签: php composer-php php-ci

我在本地服务器上成功安装了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中的每个项目?在管理员的某个地方?

1 个答案:

答案 0 :(得分:1)

我在寻找有关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构建目录配置。它确实帮助我找到了这个。