如何确保一个特定的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
不属于单独的测试套件,这是一个单元测试