拉维尔的PHPUnit不';添加文件夹时无法运行
我想把我的测试分到他们的M、V、C文件夹中。因此,我:拉维尔的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
/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)。这可能就是原因。