2010-12-07 161 views
2

我正在做简单的框架和使用xdebug代码覆盖率报告的单元测试。让我解释一下我的问题:xdebug代码覆盖率分析与最简单的框架

  • 我有一个我想测试的类让我们假设类的名字是pagination.php。
  • 我写了另一个测试类。我写了两个测试用例来测试分页类。
  • 在两个测试用例中有大约12个断言,这给了我正确的结果“Pass”。
  • 现在我想生成代码覆盖率报告,为此我使用xdebug来显示我的测试用例覆盖所有代码。我使用xdebug_start_code_coverage()函数,并显示结果我使用xdebug_get_code_coverage()函数。

现在的问题是,当我打印xdebug_get_code_coverage()它给我2维联合数组与文件名,行号和执行时间。结果是这样的:

array 
    'path/to/file/pagination.php' => 
    array 
     11 => int 1 
     113 => int 1 

第11行是类的开始,第113行是类的结尾。我不知道为什么它不会进入课堂,为什么它没有给出课堂功能的声明范围。但是,我的测试用例对我来说看起来还不错,而且我知道所有的条件和分支覆盖都在起作用。

如果你在这方面帮助我,并且指导我如何解决这个问题,我将非常感激。

也许我错过了这里的东西。如果你想要更多的东西,请让我知道。

+0

没有任何机构那里回答我的问题。如果问题不清楚或不能回答,请让我知道。 – sim 2010-12-07 19:50:27

回答

1

我使用被调用的方法为一个类实现了一个XDebug-CC,它工作正常。虽然我不得不说我对这个工具如何定义“可执行代码”有点困惑,但它肯定考虑了方法。

您可能会检查xdebug_start_code_coverage()和xdebug_get_code_coverage()的位置,因为必须在开始和结束时调用这些位置。

此外,您可能会检查您的XDebug版本,因为该功能发布后已经进行了一些准确性改进。

最佳

拉斐尔