【问题标题】:phpunit warning on an utilitary class实用程序类上的phpunit警告
【发布时间】:2010-09-28 07:54:57
【问题描述】:

我在集成服务器上使用 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 课程只包括所有带有$suite->addTestFile() 的测试课程, 并且有两个静态函数:main() 运行所有测试, 和 suite() 返回测试套件。 但是 TU 类不在作为参数给出的主文件中 phpunit 命令,它是一个通用类,它扫描文件并列出所有测试 类。

我对扩展 PHPUnit_Framework_TestCase 以添加 specific assert() 的类有同样的问题,该类不包含在 $suite->addTestFile() 中,而仅包含在 require() 中。

我该如何纠正这个问题?

【问题讨论】:

    标签: php phpunit


    【解决方案1】:

    对于扩展 PHPUnit_Framework_TestCase 的类,它应该是抽象的,并且警告消失。 第一个问题,好像是个bug。

    【讨论】:

    • 我从 3.x 升级到 4.8 后开始得到这个 - 但只有在通过测试套件运行时。您的解决方案解决了 - 谢谢。
    【解决方案2】:

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

    在大多数 unixoid 系统上,运行

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

    应该向您展示差异。

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

    【讨论】:

    • 我不这么认为。 dev@devweb/~ php -i | grep php.ini 配置文件 (php.ini) 路径 => /etc 加载配置文件 => /etc/php.ini phpinfo() via apache:加载配置文件 /etc/php.ini 我实际上认为这是一个 phpunit 问题。
    猜你喜欢
    • 1970-01-01
    • 2012-01-14
    • 1970-01-01
    • 2013-04-12
    • 1970-01-01
    • 2014-05-22
    • 1970-01-01
    • 2017-09-29
    • 2018-07-24
    相关资源
    最近更新 更多