我有一个项目,其中使用junit 4和5实现了测试。其中一些测试需要存在数据库,有没有办法标记这些特定的测试(是TestSuite的答案?),以便gradle即使这些测试失败也可以继续构建?
我不想跳过其他测试,只是这些特定的测试。
我正在使用junit 5 vintage,因此我的测试任务同时运行junit 4和junit 5测试。
gradle --continue
将在任务失败时继续执行,收集所有错误。您仍然需要忽略Gradle的退出代码(例如,在构建管道中)。ignoreFailures
添加到该目标中。import static org.junit.Assume.*;
public class SomeDatabaseTest {
@Test
public void someThing() {
assumeTrue(Database.isAvailable());
// actual test goes here
}
}
project.gradle.teskGraph.whenReady {
connectedDebugAndroidTest {
ignoreFailures = true
}
}
你可以使用任何测试任务来代替connectedDebugAndroidTest。你也可以仅为那些被标注为@Test的测试指定@Test。请参阅此处的Android文档以获取测试示例。