gma*_*ull 37 junit android unit-testing gradle android-studio
我最近安装了 Android Studio Arctic Fox v2020.3.1 Beta 2 以便能够Compose
在我们的项目中使用 Jetpack ,因为我无法在 AS 4.2.1 上这样做,因为Compose
抛出了一个奇怪的构建错误,该错误已在 Arctic 上得到修复狐狸。
所以这里的问题是,在加载项目后,更新一些 SDK/库我能够构建和运行没有问题,但是,当我去运行单元测试时,我注意到 IDE 不再识别所有测试类。经过一番调查,我发现新版本的 AS 将不再识别 JUnit 配置。
正如您在下面的屏幕截图中看到的那样,无法像往常一样运行这些测试:
而这一次是Run/Debug Configurations
在哪里JUnit
试验正在为未知的类别:
最后,我确实创建了一个 gradle 配置来测试,但它只是在左侧说:
未收到测试事件
并在右侧抛出错误:
任务“功能:注册:testDevDebugUnitTest”的执行失败。未找到给定的测试包括:com.projectsaturn.android.features:signup.SignupViewModelTest
我想知道那里是否有人遇到过这个问题并且能够解决?
任何帮助表示赞赏!
更新 01:
所以我决定回滚一切,从头开始。这次我只更新了几点:
com.android.tools.build:gradle:7.0.0-beta02
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32
com.google.firebase:firebase-crashlytics-gradle:2.6.1
androidx.test:core/runner/rules:1.3.0
现在的问题是,当我通过 Gradle 运行它时,所有单元测试都失败了。我怀疑它@Before
在运行实际测试函数之前没有运行带注释的函数。或者我没有正确设置 Gradle 测试(下面的截图)?
如果您使用的是 Android Studio Arctic Fox,则需要稍微修改您的 app/build.gradle。
添加
android {
testOptions {
execution 'ANDROIDX_TEST_ORCHESTRATOR'
unitTests.all {
useJUnitPlatform() // <--- this is the important part
}
}
}
Run Code Online (Sandbox Code Playgroud)
并确保将 junit-engine 添加到您的依赖项中
testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.7.1'
Run Code Online (Sandbox Code Playgroud)
这可能不是适合所有人的解决方案,但我们的项目有许多单元测试由于 Android Studio Arctic Fox 的Gradle 测试运行程序而被破坏。看来,如果您更新到最新的 Gradle 插件,右键单击测试类将提示新的 Gradle“创建测试”选项。。
我们还没有更新插件,所以我们的解决方案是为单元测试创建我们自己的 Gradle 运行配置。
这可以通过以下方式完成:
归档时间: |
|
查看次数: |
2975 次 |
最近记录: |