我运行Codeception验收测试并获得结果:
如您所见,覆盖率为0%
然后我在 _output / acceptance.remote.coverage / index.html 的浏览器中打开覆盖率结果,并看到总覆盖率为81.13%
问题是:为什么覆盖结果没有合并而没有打印到控制台?我还必须编写单元测试来覆盖所有方法吗?
acceptance.suite.yml
class_name: AcceptanceTester
modules:
enabled:
- PhpBrowser:
url: http://127.0.0.1:4444
- \Helper\Acceptance
codeception.yml
actor: Tester
paths:
tests: tests
log: tests/_output
data: tests/_data
support: tests/_support
envs: tests/_envs
settings:
bootstrap: _bootstrap.php
colors: true
memory_limit: 1024M
coverage:
enabled: true
c3_url: http://127.0.0.1:4444
remote: true
whitelist:
include:
- src/*
exclude:
- tests/*
extensions:
enabled:
- Codeception\Extension\RunFailed
运行测试命令
codecept run --coverage --coverage-xml --coverage-html --coverage-text --fail-fast
版本
Codeception PHP Testing Framework v2.2.2
Powered by PHPUnit 5.4.6 by Sebastian Bergmann and contributors.
答案 0 :(得分:0)
Codeception无法合并您的结果,如documentation:
中所述但是如果你在不同的服务器上运行测试[...],应该在config中添加一个选项remote。
[...]
在这种情况下,如果启用此选项,远程代码覆盖率结果将不会与本地结果合并。只有在远程和本地文件具有相同路径的情况下才可以进行合并。但是如果在远程服务器上运行测试,我们不确定它。
也许您可以使用phpcov手动执行此操作。