Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
拉维尔的PHPUnit不';添加文件夹时无法运行_Php_Laravel_Laravel 4_Phpunit - Fatal编程技术网

拉维尔的PHPUnit不';添加文件夹时无法运行

拉维尔的PHPUnit不';添加文件夹时无法运行,php,laravel,laravel-4,phpunit,Php,Laravel,Laravel 4,Phpunit,我想把我的测试分到他们的M、V、C文件夹中。因此,我: /tests /models /views /controllers TestCase.php 例如,我在/controllers中有一个UsersControllerTest.php: class UsersControllerTest extends TestCase { public function testSimple() { $this->assertTr

我想把我的测试分到他们的M、V、C文件夹中。因此,我:

/tests
    /models
    /views
    /controllers
    TestCase.php
例如,我在
/controllers
中有一个
UsersControllerTest.php

class UsersControllerTest extends TestCase {

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

}
当我运行
phpunit
时,我得到的只是从路径\u到\u phpunit.xml读取的
配置。当我在文件夹中添加测试文件时,问题就出现了。如果我将该测试文件移动到根
/tests
文件夹中,则一切正常

我试图编辑
phpunit.xml
文件以包括:

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

/应用/测试
/应用/测试/控制器

但它仍然不起作用

解决方案比我预期的简单得多。您只需在
phpunit.xml
文件中的目录路径末尾添加一个asterix,
*

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

/应用/测试/*

阅读phpunit.xml文件,phpunit在运行测试时考虑了一些路径,您的路径似乎超出了该路径。是的,我意识到了这一点。那我该怎么办呢?如何添加其他路径?类似于已经存在的路径。如果您有一条路径,请添加另一条路径。所以我尝试添加更多的
,但仍然存在相同的问题。也许最好阅读PHPUnit关于该主题的文档。如果已经添加了目录,则不需要添加子目录。我认为您对autoloader有问题-检查是否加载了测试类。与其他更适合的框架相比,Laravel的autoloader非常简单,可能它只在主目录中搜索。这很有趣,我当前的项目递归地运行到子文件夹中,没有星号。@Unnawut,您使用的是什么版本的PHPUnit?我正在使用最新的4.1。也许这是这个版本的错误?啊,对。我使用的是4.3-dev(在composer.json中设置为devmaster)。这可能就是原因。