Espresso 在 Android 上测试未 运行 12

Espresso tests not running on Android 12

我的 Pixel 4a 已升级到 Android 12,现在,当我尝试 运行 在该设备上进行 Espresso 测试时,没有测试 运行。 Android Studio 显示“测试通过 0 通过”。没有测试 运行。在 Android 11 设备上测试仍然 运行 符合预期。

我的测试方法用org.junit.Test注释。我的测试 class 被注释为 androidx.test.filters.LargeTest。

我确保升级 Android Studio。我在 build.gradle 中将 compileSdkVersion 和 targetSdkVersion 更新为 31。我检查了我的测试依赖项并将它们更新为以下版本:

junit:junit:4.13.2
androidx.test.ext:junit-ktx:1.1.3
androidx.test:runner:1.4.0
androidx.test:rules:1.4.0
androidx.test.uiautomator:uiautomator:2.2.0
androidx.test.espresso:espresso-core:3.4.0
androidx.work:work-testing:2.7.0

改了这么多,问题依旧,我在AVD上也看到了。

有其他人遇到过这个问题吗?

我是怎么解决的Android12.

如果要使用测试编排器

确保您拥有最新的编排器和测试运行器版本。

androidTestUtil 'androidx.test:orchestrator:1.4.1'
androidTestImplementation 'androidx.test:runner:1.4.0'

确保它在您的 app/build.gradletestOptions 中。

execution 'ANDROIDX_TEST_ORCHESTRATOR

或者,如果您不想使用测试协调器

从 app/build.gradle.

的 testOptions 中删除以下行
 execution 'ANDROIDX_TEST_ORCHESTRATOR
 

我是怎么解决的 Android 11.

(如果您对 Android 12 上的 运行 orchestrator 感兴趣,请在上面的第一步之外执行以下步骤)

在 androidTest 文件夹中创建一个 AndroidManifest.xml 并添加以下查询权限以通过允许 orchestrator 包与测试包通信来解析 'no tests found'

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="your.package.name">

<!-- This Manifest will only apply changes to androidTest builds -->

<queries>
    <package android:name="androidx.test.orchestrator.OrchestratorService"/>
</queries>

<application android:forceQueryable="true" />