5

我正在尝试让 Ne​​tbeans代码覆盖率检查功能正常工作。我在 Windows XAMPP 设置上使用 PHP,并设置了 PHPUnit,它似乎可以正常运行单元测试。

当我右键单击我的项目并选择“代码覆盖率 > 收集并显示代码覆盖率”时,它会在底部显示一个小条,上面写着“0%”,并且可以选择运行测试和获取报告。

我运行测试并检查报告,但它仍然保持在 0%。如果我检查报告,它会显示“没有数据 - 你运行你的代码了吗?” 我试过重新运行测试,但它仍然这样做。我也尝试过只运行该项目,并且“调试”该项目无济于事。

很难获得有关该主题的最新信息,但从 PHPUnit 文档来看,Xdebug 可能存在问题(我已启用它,但不知道它是否正常工作,因为我之前没有在 Netbeans 中使用过它)。一些旧消息来源说 Xampp 中有两个 php.ini(一个用于 Web,一个用于 CLI),但我找不到第二个(猜想这已经改变了)。

我确定我可能缺少一些相当基本的东西,比如 Xdebug 设置或其他东西......有什么帮助吗?

这是我的 php/php.ini 文件中的 XDebug 部分:

[XDebug]
zend_extension = "D:\xampp\php\ext\php_xdebug.dll"
;xdebug.profiler_append = 0
;xdebug.profiler_enable = 1
;xdebug.profiler_enable_trigger = 0
;xdebug.profiler_output_dir = "\xampp\tmp"
;xdebug.profiler_output_name = "cachegrind.out.%t-%s"
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "127.0.0.1"
;xdebug.trace_output_dir = "\xampp\tmp"
4

1 回答 1

7

可能是由这个引起的:http ://forums.netbeans.org/topic47374.html 。显然 PHPUnit 不能处理从 c:\ 开始并在 D: 上测试的东西。

因此,我使用 --coverage-html /path/to/directory 参数从命令行运行任何我想要覆盖报告的测试:

phpunit --bootstrap bootstrap.php --configuration phpunit.xml --coverage-html ./report ./unit

最后一个参数 (./unit) 表示这将测试 unit/ 子目录中的 als 测试。

于 2013-01-30T07:46:01.220 回答