我正在尝试使用android支持过滤器@SmallTest,@MediumTest,@LargeTest,...进行本地单元测试。不幸的是,我不知道如何在通过 gradle 调用单元测试时过滤它们。
我只找到了仪器测试的调用示例。
你有什么建议吗?
提前致谢
-- 编辑-- 我的计划是引入更多注释,例如“外部测试”或“基准测试”,我可以在常规测试范围之外运行这些注释(例如每晚或其他)。另一个想法是过滤 gradle 配置中的测试目录。但我认为注释会好得多......
最佳答案
我找到的解决方案是JUnit Categories 。通过类别,您可以使用特定接口(interface)标记测试,并在 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'
}
}
}
}
}
关于android - 使用 Android 测试过滤器(@SmallTest、@MediumTest、@LargeTest)进行本地单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52988472/