2013-02-20 36 views
1

我正在学习ZF2“Getting Started”教程之后的Zend Framework 2。现在我有一个简单的应用程序对IndexController进行PHPUnit测试(代码从本教程的首字母“Unit Testing”中复制)。测试工作。现在,我想创建一个代码覆盖率报告:PHPUnit覆盖-html分析错误的文件夹

# phpunit --coverage-html ./report 

# phpunit --coverage-html ./report ApplicationTest/Controller/IndexControllerTest.php 

我希望整个文件夹test(第一个例子)或IndexControllerTest(第二个例子)的覆盖报告。

enter image description here

为什么:

什么目前我得到这个报告?我怎样才能让代码覆盖脚本处理文件/文件夹,我想分析。

编辑:

我可以浏览到我的模块文件夹,看到的报告:

enter image description here

但问题是保持不变的情况:(1)为什么它的工作原理,以便和(2)我如何才能使代码覆盖脚本进程(仅)文件/文件夹,我想分析。

回答

4

您可以使用phpunit.xml包含/排除代码覆盖率的文件或文件夹,请参阅phpunit manual

此外,您可以忽略来自代码覆盖率聚合的特定代码块。请参阅:http://www.phpunit.de/manual/3.2/en/code-coverage-analysis.html

PHPUnit代码覆盖率使用xdebug来计算覆盖线。如果您的IndexControllerTest也在订单文件中运行行,它们也将显示在覆盖率报告中。

+0

谢谢您的回复!是的,可以排除一些文件甚至文件夹。但是为什么报告页面显示文件夹“var”和“usr”?当您创建覆盖报告时,它的外观如何? – automatix 2013-02-21 10:10:42

+1

您的'IndexControllerTest'也执行'usr'文件夹中的代码。您可以通过深入浏览来检查执行哪些代码。如果认为你的phpunit安装位于'usr'文件夹中,那么这个代码覆盖范围也会列出,因为php运行的是phpunit代码。如果你没有在你的配置中为代码覆盖指定任何白名单(phpunit.xml),phpunit会将代码覆盖的根设置为最高公共地图(在你的情况下是'/') – 2013-02-21 11:00:11

+0

你是对的,谢谢! '<?XML版本= “1.0” 编码= “UTF-8”?> \t <测试包名称= “zf2sandbox”> \t \t ./AlbumTest \t \t \t \t \t \t \t <目录后缀=”。PHP“> /无功/网络/沙/ zf2sandbox /模块/专辑/ src目录/专辑/ \t \t \t ' – automatix 2013-02-21 11:37:10