为了做到这一点,在你的app/build.gradle[.kts]: 声明一个buildConfig字段
我有一个仪表化的测试类。它的测试用例是在JUnit 5中(根据这个答案,在Gradle插件的帮助下)。我怎么能禁用这个测试类从CI上运行(具体来说,在GitHub行动)?
我不能使用JUnit 5注释,如@DisabledIfEnvironmentVariable
,因为Android仪器化测试运行在设备/模拟器上,不能看到主机操作系统的环境变量。
所有GitHub工作流都可以访问一个环境变量CI
,它总是true
(Docs)。
为了做到这一点,在你的app/build.gradle[.kts]: 声明一个buildConfig字段
android {
buildTypes {
getByName("debug") {
val isCI = System.getenv("CI")?.toBoolean() ?: false
buildConfigField("Boolean", "CI", "$isCI")
}
// ...
使用插件提供的@DisabledIfBuildConfigValue
禁用测试类/方法,如下:
@DisabledIfBuildConfigValue(named = "CI", matches = "true")
class ScreenshotTest {
// ...
用Gradle执行测试,上面的类/方法在GitHub上运行时将被跳过:
./gradlew :app:connectedAndroidTest --stacktrace