如何确保一个特定的PHPUnit TestCase在其他应用程序之前运行?

时间:2018-10-25 15:19:48

标签: php phpunit

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

- Tests
    - Feature
        ...
    -Integration
        ...
    - Unit
        - ModelTest.php
        - BillModelTest.php
        - ProductModelTest.php
        - CustomerModelTest.php

我对特定模型测试的执行顺序并不关心,但是我希望首先运行ModelTest(很明显,ModelTest.php测试通用模型行为和内置方法,而其他测试则运行特定于该模型的测试。

这些测试实际上都不相互依赖,因此,如果它们以自己选择的方式运行并不是什么大问题-但是由于基本模型的{{1} }方法失败了,我宁愿在该方法的测试 中抓住它,而不是在一个不相关的测试中假设getById()可以正常工作。

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

  1. getById()放入其自己的测试套件中。我不喜欢这种解决方案,因为a)如果我经常遇到这个问题,我不想建立一堆粒度测试套件,并且b)如果我只想运行我的ModelTest.php套件,我实际上会需要运行两个 测试套件,坦白地说,Unit Test不在单独的测试套件中属于,它是一个单元测试。

    < / li>
  2. 更改文件名,使其首先按字母顺序运行。这个 more 对我来说还是可以接受的,但是我仍然不喜欢它,因为它会使文件名混乱,并使应用程序总体上看起来不太干净。

还有其他方法可以确保一个特定的TestCase在其他实例之前运行吗?

1 个答案:

答案 0 :(得分:0)

没关系。

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

所以不用担心!

enter image description here