使用PHPUnit时,您可annotate a test case使用@covers SomeClass::someMethod
以确保在运行测试时仅将该方法内的代码记录为已覆盖。我喜欢使用此功能,因为它可以帮助我将测试期间偶然执行的代码与实际测试的代码分开。
使用Codeception为我的项目实现一些验收测试后,我决定使用它而不是PHPUnit来运行我的单元测试。如果可能的话,我想从项目中删除PHPUnit。
我使用Codeception' Cest格式进行单元测试,而@covers
和@codeCoverageIgnore
注释不再有效。代码覆盖率报告显示在@covers
指定的方法之外执行的代码。有没有办法模仿"严格的报道"使用Codeception的功能?
编辑:我已向Codeception项目的Github提交了enhancement request。
答案 0 :(得分:0)
事实证明,当我提出问题时,使用Cest格式测试无法进行严格的覆盖。我已经实现了它,并且拉取请求已经merged。
对于从PHPUnit迁移测试并按原样查找此功能的任何人,这意味着稍后版本的Codeception 应该为@covers
,@uses
,{提供支持{1}}和其他相关的测试注释。
当前版本(撰写本文时为@codeCoverageIgnore
)不支持,但2.2.4
应该支持。