我正在尝试将android支持过滤器@ SmallTest,@ MediumTest,@ LargeTest等用于本地单元测试。不幸的是,我不知道在通过gradle调用单元测试时如何过滤它们。
我只找到了仪器化测试的调用示例。
您有建议吗?
预先感谢
-编辑- 我的计划是引入更多的注释,例如“ externalTests”或“ benchmarking”,这些注释可能会超出我的常规测试范围(例如每晚或其他)。另一个想法是在gradle配置中过滤测试目录。但是我认为注释会更好...
答案 0 :(得分:0)
我找到的解决方案是JUnit Categories。通过类别,您可以使用特定的界面标记测试,并在gradle文件中进行过滤。 我创建了一个界面
package com.mypackage.testing.category;
public interface Benchmark {
// this is just a marker interface
}
在测试中可以如下使用
public class CategoryTest {
@Test
public void unitTest() {
System.out.println("I am a unit test");
}
@Test
@Category(Benchmark.class)
public void benchmarkTest() {
System.out.println("I am a benchmark test");
}
}
可以在gradle文件中过滤不同的类别,例如带有gradle参数benchmark
android {
testOptions {
unitTests.all {
useJUnit()
if (project.hasProperty("benchmark").booleanValue()) {
options {
includeCategories 'com.mypackage.testing.category.Benchmark'
}
} else {
options {
excludeCategories 'com.mypackage.testing.category.Benchmark'
}
}
}
}
}