【问题标题】:How to setup Codeception with remote code coverage?如何使用远程代码覆盖设置 Codeception?
【发布时间】:2016-09-22 15:44:08
【问题描述】:
  • 我的机器上有两个 repo
    1. API
    2. 测试 API 的 Codeception 存储库

在 API 存储库中,我添加了 codeception+c3

"require-dev": {
    "codeception/codeception": "2.*",
    "codeception/c3": "2.*",

我还在 index.php 中包含了 c3.php,但是当尝试使用 --coverage 对其进行测试时,我遇到了这个错误

[PHPUnit_Framework_Exception] file_get_contents(http://local.api.codeception.com/c3/report/clear): fai 导致打开流:HTTP请求失败! HTTP/1.1 500 内部服务器错误

是否有ANY使用 Codeception 进行远程代码覆盖的在线示例?

【问题讨论】:

  • - 好的,我并不懒惰,所以我做了一个小的 repo,包含 API 和 API 的代码接收测试 - 真的不知道如何以正确的方式设置 YML github.com/Horki/remotecoverage
  • 你试过显示c3中发生的错误吗?您可以使用“define('C3_CODECOVERAGE_ERROR_LOG_FILE', '/path/to/c3_error.log');”设置一个常量在包含 c3.php (@see github.com/Codeception/c3#setup) 之前,您应该在文件中看到错误,为什么会有 500 结果。
  • 可能有帮助的类似错误和问题:github.com/Codeception/Codeception/issues/655

标签: php code-coverage remote-server codeception


【解决方案1】:

这是我使用 Codeception (Project on GitHub) 进行远程代码覆盖的配置。


启动远程代码覆盖收集的步骤

1.确保已安装并启用 xdebug。

2。配置代码接收。

文件codeception.yml (GitHub):

coverage:
  enabled: true
  c3_url: 'http://%SERVICE_HOST%/index-test.php/'
  include:
  - web/*
  - config/*
  - src/*

3.为您需要的套装启用覆盖范围。

文件acceptance.suite.yml (GitHub):

coverage:
  remote: true

在我的示例中,它仅用于验收测试。

4.在您的应用引导程序中包含 c3.php 文件。

应用程序引导文件index-test.php (GitHub):

// Start the remote code coverage collection.
require_once __DIR__.'/../c3.php';

// autoloader, application running and etc
// ...

5.运行覆盖。

$ vendor/bin/codecept run --coverage --coverage-html

默认情况下,您可以在tests/_output 目录中找到您的报告。


可能的问题

1.输出目录不可写 (tests/_output)。

$ chmod 777 tests/_output

2。远程代码覆盖未在控制台中打印。

它不应该被打印出来。来自文档:

coverage:
  remote: true

在这种情况下,如果启用此选项,远程代码覆盖结果将不会与本地结果合并。只有在远程文件和本地文件具有相同路径的情况下才可以合并。但是如果在远程服务器上运行测试,我们就不确定了。

3.其他一些错误。

尝试enable debug。如果启用调试,您可以获取或清除报告。

curl -o codecoverage.tar "http://localhost:8080/index-test.php/c3/report/html"

结束

有时这不是一项简单的任务。所以我希望这会有所帮助!

【讨论】:

    【解决方案2】:

    好的,这是一场配置噩梦,但我已经解决了

    Here 是示例

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-07
      • 1970-01-01
      • 2020-03-03
      • 1970-01-01
      • 2013-09-29
      • 1970-01-01
      • 2019-10-07
      • 1970-01-01
      相关资源
      最近更新 更多