【问题标题】:PHPUnit in Laravel doesn't run when adding folders添加文件夹时,Laravel 中的 PHPUnit 不运行
【发布时间】:2014-09-15 18:52:28
【问题描述】:

我想将我的测试分解到他们的 M、V、C 文件夹中。所以我有:

/tests
    /models
    /views
    /controllers
    TestCase.php

例如,我在/controllers 内有一个UsersControllerTest.php

class UsersControllerTest extends TestCase {

    public function testSimple()
    {
        $this->assertTrue(true);
    }

}

当我运行phpunit 时,我得到的只是Configuration read from PATH_TO_phpunit.xml。当我在文件夹中添加测试文件时出现问题。如果我将该测试文件移动到根 /tests 文件夹,那么一切正常。

我尝试编辑 phpunit.xml 文件以包含:

<testsuites>
    <testsuite name="Application Test Suite">
        <directory>./app/tests</directory>
        <directory>./app/tests/controllers</directory>
    </testsuite>
</testsuites>

但是还是不行

【问题讨论】:

  • 读取 phpunit.xml 文件,PHPUnit 在运行测试时会考虑路径,您似乎不在该路径之外。
  • 是的,我意识到这一点。那么我应该怎么做?如何添加其他路径?
  • 类似于已经存在的。如果您的 有一个路径,请添加另一个路径。
  • 所以我尝试添加更多&lt;director&gt;,但还是同样的问题。
  • 也许更好地阅读 PHPUnit 的主题文档。如果已经添加了目录,则不需要添加子目录。我认为您对自动加载器有问题-检查是否完全加载了该测试类。与其他更适合的框架相比,Laravel 的自动加载器非常简单,也许它只在主目录中搜索。

标签: php laravel laravel-4 phpunit


【解决方案1】:

解决方案比我预期的要简单得多。您所要做的就是在phpunit.xml 文件内的目录路径末尾添加一个星号*

<testsuites>
    <testsuite name="Application Test Suite">
        <directory>./app/tests/*</directory>
    </testsuite>
</testsuites>   

【讨论】:

  • 这很有趣,我当前的项目递归地运行到子文件夹中,没有星号。
  • @Unnawut,您使用的是什么版本的 PHPUnit?我正在使用最新的 4.1。也许这是这个版本的一个错误?
  • 对了。我正在使用 4.3-dev(在 composer.json 中设置为 dev-master)。大概就是这个原因。
猜你喜欢
  • 2017-12-10
  • 2011-07-03
  • 2015-09-08
  • 2017-11-06
  • 1970-01-01
  • 2015-03-22
  • 2013-01-15
  • 2011-05-02
  • 1970-01-01
相关资源
最近更新 更多