Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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_Phpunit - Fatal编程技术网

如何确保一个特定的PHPUnit测试用例在其他测试用例之前运行?

如何确保一个特定的PHPUnit测试用例在其他测试用例之前运行?,php,phpunit,Php,Phpunit,假设我有以下文件,每个文件都包含一个扩展我的TestCase的类: - Tests - Feature ... -Integration ... - Unit - ModelTest.php - BillModelTest.php - ProductModelTest.php - CustomerModelTest.php 我对特定模型测试的运行顺序不感兴趣,但我希望先运行M

假设我有以下文件,每个文件都包含一个扩展我的
TestCase
的类:

- Tests
    - Feature
        ...
    -Integration
        ...
    - Unit
        - ModelTest.php
        - BillModelTest.php
        - ProductModelTest.php
        - CustomerModelTest.php
我对特定模型测试的运行顺序不感兴趣,但我希望先运行
ModelTest
(明确地说,
ModelTest.php
测试通用模型行为和内置方法,而其他测试运行特定于该模型的测试)

这些测试实际上都不是相互依赖的,因此,如果它们选择以任何方式运行,这不是一个大问题——但是如果一个测试因为基本模型的
getById()
方法失败而失败,我宁愿在该方法的测试中捕捉到这一点,而不是在假设
getById()
按预期工作的无关测试中捕捉到这一点

到目前为止,我想到了两种可能的解决方案:

  • ModelTest.php
    放在它自己的测试套件中。我不喜欢这个解决方案,因为a)如果我经常遇到这个问题,我不想做一堆细粒度的测试套件,b)如果我只想运行我的
    单元测试
    套件,我实际上需要运行两个测试套件,坦率地说,
    ModelTest.php
    不属于单独的测试套件,这是一个单元测试

  • 更改文件名,使其按字母顺序优先运行。这个对我来说更容易接受,但我仍然不喜欢它,因为它会使文件名变得杂乱无章,使应用程序总体上感觉不那么干净

  • 有没有其他方法可以确保一个特定的测试用例在其他测试用例之前运行

    这不要紧

    如果在运行PHPUnit时生成代码覆盖率报告,您将看到它告诉您有多少测试实际调用了该代码

    所以别担心