Laravel:将测试组织到文件夹中并运行它们

les*_*gar 4 phpunit unit-testing laravel

Laravel是否可以根据它们所在的文件夹运行单元测试?

目前,phpunit.xml指定/ tests作为单元测试的根目录:

...
<testsuites>
    <testsuite name="Application Test Suite">
        <directory>./app/tests/</directory>
    </testsuite>
</testsuites>
...
Run Code Online (Sandbox Code Playgroud)

使用CLI通过phpunit命令运行测试.我想将测试组织到子文件夹中,如下所示:

/测试

  • /单元
  • /积分

所以我只能从指定的子文件夹运行测试,如:phpunit integration.

我尝试了上述内容,但框架假定"集成"是不存在的PHP文件的名称.

我如何实现目标?

luk*_*ter 19

这实际上与Laravel无关.它只是PHPUnit.

您可以testsuites按名称定义和执行它们.

<testsuites>
    <testsuite name="unit">
        <directory>./app/tests/unit/</directory>
    </testsuite>
    <testsuite name="integration">
        <directory>./app/tests/integration/</directory>
    </testsuite>
</testsuites>
Run Code Online (Sandbox Code Playgroud)

然后跑 phpunit --testsuite integration