如何在测试 Class 上设置仪器测试的顺序?

How to set an order in instrumented test over the Test Class?

我想通过测试设置订单 Class。

@RunWith(AndroidJUnit4::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
class ATest {
  @Test
  fun test0000()

  @Test
  fun test0001()
}
@RunWith(AndroidJUnit4::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
class BTest {
  @Test
  fun test0002()

  @Test
  fun test0003()
}

我想测试 ATest.test0000 -> ATest.test0001 -> BTest.test0002 -> BTest.test0003

因为ATest class必须在B Test之前进行测试。 我怎样才能做到这一点?可能吗?

首先,我建议您在测试中不要有任何依赖项。
Test A class 和 Test B class 应该 运行 彼此独立。
当您的应用程序增长时,这真的很有帮助。

不应该有一个测试应该 运行 在另一个测试之前的条件。
只有在 罕见/真实 情况下,我们才应该对序列有这样的依赖性。

因为如果你用序列相关依赖设计你的测试,那么你将很难维护你的测试用例,并且当你遵循测试驱动开发(TDD)时会变得困难。

对于上述情况,请尝试使用SuiteClasses
SuiteClasses 注释指定套件 运行 将哪些测试 class 包含在该套件中以及以何种顺序包含。

请参考Junit团队提供的示例HERE