12

我在集成服务器上使用 phpUnit 来运行所有测试,如果我从命令行启动 phpunit 命令,我会收到:

PHPUnit 3.2.18 by Sebastian Bergmann.
F..III..I......I.IIII...
Time: 6 seconds
There was 1 failure:

1) Warning(PHPUnit_Framework_Warning)
No tests found in class "TU".
FAILURES
Tests: 24, Failures: 1, Incomplete: 9.

通过 apache,运行相同的测试文件:

PHPUnit 3.2.18 by Sebastian Bergmann.
..III..I......I.IIII...
Time: 7 seconds

OK, but incomplete or skipped tests!
Tests: 23, Incomplete: 9.

我的 TU 类只包含所有带有 a 的测试类$suite->addTestFile(),它们有两个静态函数:main()运行所有测试,以及suite()返回测试套件。但是 TU 类不在作为 phpunit 命令参数的主文件中,它是一个通用类,它扫描文件并列出所有测试类。

我对将 PHPUnit_Framework_TestCase 扩展为 add 的类有同样的问题,该类specific assert()不包含在 via 中,$suite->addTestFile()而仅包含在 arequire()中。

我该如何纠正?

4

2 回答 2

36

对于扩展 PHPUnit_Framework_TestCase 的类,它应该是抽象的,并且警告消失。对于第一个问题,它似乎是一个错误。

于 2008-12-30T10:14:54.287 回答
0

看起来您正在php.ini为命令行和 Apache 使用两个不同的文件。

在大多数 unixoid 系统上,运行

diff /etc/php*/*/php.ini

应该向您展示差异。

在 Windows 系统上,使用搜索查找名为php.ini. 在大多数情况下,您只需将 Apache 配置文件复制到 CLI 之一即可。

于 2008-12-24T14:23:58.313 回答