当找不到具有testsuite名称的文件时,phpunit抛出异常

时间:2012-03-13 16:51:40

标签: php zend-framework phpunit test-suite

当我得到与此Jon´s screencast about Unit Testing with PhpUnit and ZF中描述的ratzip完全相同的错误时,我正在关注question

正如他评论的那样,即使在按照建议的here创建测试之后我也遇到了同样的问题:由于某种原因,有一些脚本正在寻找一个名为我命名我的测试套件的文件(MyApp.php或者其他...)。

我环顾四周但却无法找到我应该在哪里创建此文件及其应包含的内容。

但是,在给定的时刻,在阅读了这个question about how to run a specific phpunit xml testsuite之后,我决定尝试明确地在testsuite部分插入一个文件。

我的phpunit.xml现在是:

<phpunit bootstrap="./application/bootstrap.php" colors="true">
<testsuites>
    <testsuite name="MyApp">
        <file>./application/(path_to_model_inside_module)/ModelTests.php</file>
        <directory>./</directory>       
    </testsuite>
</testsuites>

<filter>

    <whitelist>
        <directory suffix=".php">../application/</directory>
        <exclude>
            <directory suffix=".phtml">../application/</directory>
        </exclude>
    </whitelist>

</filter>

即使看起来有点绝望,这个错误也不再发生了,现在测试正在进行。

BUt我感到不舒服,因为我无法理解之前的问题以及为什么这个文件的解释“修复”它。

我无法理解为什么xml目录定义无法指导测试框架找到现有的测试。

1 个答案:

答案 0 :(得分:1)

  

PHP致命错误:带有消息的未捕获异常'PHPUnit_Framework_Exception'   '既不是“$ TEST_SUITE_NAME.php”也不是“$ TEST_SUITE_NAME.php”可能是   开了。”在......

这是PHPUnits 非常神秘的说法

  

他哥们!这里的小问题:我试图找到一些要执行的测试,但我没有找到任何,所以我试图加载一个名为测试套件的文件,甚至不存在。我无法执行任何测试..你能帮助我吗? :(

总之它说:

扫描xml中的内容后,我没有找到任何测试!

为什么会发生这种情况?

PHPUnit查找以 Test.php 结尾的文件,但您的文件以 TestS.php 结尾。额外的“S”表示PHPUnit在扫描目录时不会获取文件。这也是添加文件标签有帮助的原因。

将它重命名为ModelTest.php,你可以删除文件标签:)

或者,如果您希望使用以下命令保持文件名告诉PHPUnit您的命名模式:

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