phpunit在不执行时抛出异常';找不到名为testsuite的文件


phpunit throwing exception when doesn't find file with name of testsuite

我正在关注Jon关于PhpUnit和ZF的单元测试的截屏,这时我得到了与ratzip在这个问题中描述的完全相同的错误。

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

我环顾四周,但找不到应该在哪里创建这个文件以及它应该包含什么。

但是,在阅读了关于如何运行特定phpunit xml测试套件的问题后,我决定尝试在测试套件部分明确插入一个文件。

我的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>

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

但是我对此感到不舒服,因为我不明白以前的问题是什么,以及为什么对文件的解释"修复"了它。

我不明白为什么xml目录定义不能指导测试框架找到现有的测试。

PHP致命错误:未捕获异常"PHPUnit_Framework_exception",消息为'"$TEstrongUITE_NAME.php"answers"$TEstrongtUITE_NAME.php"都不能已打开。"在里面

这是PHPUnits非常隐晦的表达方式

他伙计!这里的小问题是:我试图找到一些要执行的测试,但没有找到,所以我试图加载一个名为测试套件的文件,但这个文件根本不存在。我不能执行任何测试。。你能帮我吗(

简而言之:

扫描完xml中的内容后,我没有发现任何测试

为什么在你的情况下会发生这种情况?

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

将其重命名为ModelTest.php,就可以去掉文件标记:)

或者,如果你想保留你的文件名,告诉PHPUnit你的命名模式使用:

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