【问题标题】:PHPunit can't find testsPHPunit 找不到测试
【发布时间】:2013-04-03 19:15:09
【问题描述】:

PHPunit 无法找到我的测试,但它确实找到了我的 XML 配置。这是配置:

<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
         backupStaticAttributes="false"
         bootstrap="vendor/autoload.php"
         colors="false"
         convertErrorsToExceptions="true"
         convertNoticesToExceptions="true"
         convertWarningsToExceptions="true"
         processIsolation="false"
         stopOnFailure="false"
         syntaxCheck="false"
>
    <testsuites>
        <testsuite name="Symply Test Suite">
            <directory>src/Symply/EventManager/Tests</directory>
        </testsuite>
    </testsuites>
</phpunit>

这是目录结构:

PHPunit 只是说,在运行脚本时,“没有执行测试”。 我不知道为什么这不起作用,因为我在 XML 目录标签中指定了目录。

【问题讨论】:

  • 能否也发布 EventManagerTest.php 文件?
  • 是的!其实没什么特别的:pastebin.com/mtnhGD4D
  • 我看不到发布的代码有任何问题,但我没有使用 PHP 命名空间,所以我不能说。您是否尝试过将 php.ini 中的日志记录设置为尽可能多,并将 display_errors 设置为 on?

标签: unit-testing phpunit


【解决方案1】:

您需要提供suffix 属性:

<directory suffix="Test.php">...</directory> 

阅读the documentation 了解更多信息。

【讨论】:

  • 感谢您的回答。我试过这个:pastebin.com/temJ08de 但它仍然没有找到测试。奇怪...
  • 可以直接用phpunit运行文件吗? $ phpunit path/to/fileTest.php?
【解决方案2】:

我遇到了同样的问题。这篇文章有点老了,但我想我会分享我从阅读此页面并进一步研究中得出的结论。

测试目录中的文件不以 *Test.php 结尾 当我将它们更改为该格式时,它起作用了。 太棒了,您可以通过在 xml 中定义后缀来定义自己的命名约定。

希望对可能阅读本文但仍然有些困惑的人有所帮助。

【讨论】:

    【解决方案3】:

    我想我明白了。仅通过命令行使用 PHPunit 时,一切正常。我猜Netbeans有一些问题。我需要在那里指定一个测试文件夹,所以我想我会选择 src 文件夹?感谢所有试图帮助我的人。

    【讨论】:

    • 您应该声明当您从 netbeans 运行 phpunit 时会发生这种情况,而不是仅在 CLI 上。
    • 是的,但昨天在 CLI 上也失败了。由于您的后缀提示,它可能已修复。
    • 这整件事太搞笑了!
    【解决方案4】:

    我正在尝试使用 PHPUnit 7.1.5 和 php7.1.16 在 PhpStorm 上运行我的测试,这给了我没有执行测试的消息。将我的 PHPUnit 更改为 4.8.36,它工作正常。

    【讨论】:

      猜你喜欢
      • 2019-07-26
      • 1970-01-01
      • 2021-09-01
      • 2017-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-11
      相关资源
      最近更新 更多