假设我有以下文件,每个文件都包含扩展我的TestCase
的类:
- Tests
- Feature
...
-Integration
...
- Unit
- ModelTest.php
- BillModelTest.php
- ProductModelTest.php
- CustomerModelTest.php
我对特定模型测试的执行顺序并不关心,但是我希望首先运行ModelTest
(很明显,ModelTest.php
测试通用模型行为和内置方法,而其他测试则运行特定于该模型的测试。
这些测试实际上都不相互依赖,因此,如果它们以自己选择的方式运行并不是什么大问题-但是由于基本模型的{{1} }方法失败了,我宁愿在该方法的测试 中抓住它,而不是在一个不相关的测试中假设getById()
可以正常工作。
到目前为止,我已经想到了两种可能的解决方案:
将getById()
放入其自己的测试套件中。我不喜欢这种解决方案,因为a)如果我经常遇到这个问题,我不想建立一堆粒度测试套件,并且b)如果我只想运行我的ModelTest.php
套件,我实际上会需要运行两个 测试套件,坦白地说,Unit Test
不在单独的测试套件中属于,它是一个单元测试。
更改文件名,使其首先按字母顺序运行。这个 more 对我来说还是可以接受的,但是我仍然不喜欢它,因为它会使文件名混乱,并使应用程序总体上看起来不太干净。
还有其他方法可以确保一个特定的TestCase在其他实例之前运行吗?