我需要覆盖以下代码:

switch($contract["value"]){

...
case "n":
     $contract["error_msg"] = "some Error";
     break;
...

default:
     $contract["error_msg"] = "Unexpected Error";
     break;

这是一个捕获错误代码并将其转换为消息的开关,但是使用自动化测试无法重现默认情况,因此我尝试使用 @codeCoverageIgnoreStart 注释从代码覆盖率报告中忽略此代码,如下所示:
//@codeCoverageIgnoreStart
default:
    contract["error_msg"] = "Unexpected Error";
    break;
//@codeCoverageIgnoreEnd

但是在运行我的测试之后,注释对报告没有任何影响,并且行保持未覆盖。

我应该如何处理这种情况?

最佳答案

您可以使用

/**
 * @codeCoverageIgnore
 */

或者你测试
Default:
    //@codeCoverageIgnoreStart
    contract["error_msg"] = "Unexpected Error";
    //@codeCoverageIgnoreEnd
   break;

来自 http://phpunit.de/manual/3.7/en/code-coverage-analysis.html#code-coverage-analysis.ignoring-code-blocks.examples.Sample.php

关于php - @codeCoverageIgnoreStart 无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23761098/

10-13 08:56