为了进行代码覆盖率和工具测试,我使用了Junit Test Suite来执行命令,因为有一些依赖类。问题是我的测试正在按照junit测试服的顺序执行 BUT 测试正在被执行的两次 ... 每个Junit测试套件的执行和一个随机顺序。 我只需要执行一次Junit测试套件中定义的迭代。
@Suite.SuiteClasses({
test1.class,
test2.class,
test4.class,
test3.class,
test8.class,
test7.class
})
尝试以下两种配置后,测试仍在twiee上运行,即按照Test Suite进行1次测试,按随机顺序进行一项
testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'
当我尝试使用以下配置执行时,测试服显示为空
testInstrumentationRunner 'com.xx.xxx.modules.runner.JunitTestSuite'
我在我的测试类文件中使用了以下注释...请注意,我不希望按照类中的方法顺序执行。我已经用过@FixMethodOrder(MethodSorters.NAME_ASCENDING)
了。我需要对课程进行同样的操作。即我需要借助课程顺序来执行测试
答案 0 :(得分:0)
我将基于几个假设进行回答,如果我发现任何错误,请更正原始问题中的答案。
首先,请注意,最好的做法是编写不依赖于运行顺序的测试以确保成功,但是如果不是这样,那么下面的解决方案可能对您有用。
听起来好像发生的事情是该测试作为套件的一部分并单独运行。您可以通过几种方法解决此问题,但是假设所有测试类都在Suite类中,最简单的方法是仅在测试运行器中运行Suite类。如果您是从gradle命令行运行测试,则可以通过传递这样的参数来实现此目的(我假设您的Test Suite类名为'com.xx.xxx.modules.runner.JunitTestSuite'):
-Pandroid.testInstrumentationRunnerArguments.class=com.xx.xxx.modules.runner.JunitTestSuite
如果您不是从gradle命令行运行测试,或者需要运行不在Test Suite中的测试,则可以通过阅读{上的文档来取消测试或找到适合您的解决方案{3}}。