如何在GitHub Actions上禁用一些JUnit 5 Android仪器测试?



我有一个仪表化的测试类。它的测试用例是在JUnit 5中(根据这个答案,在Gradle插件的帮助下)。我怎么能禁用这个测试类从CI上运行(具体来说,在GitHub行动)?

我不能使用JUnit 5注释,如@DisabledIfEnvironmentVariable,因为Android仪器化测试运行在设备/模拟器上,不能看到主机操作系统的环境变量。

所有GitHub工作流都可以访问一个环境变量CI,它总是true(Docs)。

考虑到这一点,我们可以使用Gradle间接地禁用我们的测试类。
为了做到这一点,在你的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

相关内容

  • 没有找到相关文章

最新更新