如何将 Espresso UI 测试编译成版本?

nep*_*epa 5 android android-testing android-gradle-plugin android-espresso

我目前正在尝试将 Espresso 测试添加到发布的APK 中。在我们的例子中,我们必须测试实际发布的内容,因此 UI 测试必须包含在发布中。

所以我的首要问题是:如何最好地实现这一目标?到目前为止,互联网上的研究没有给我任何结果。

我已经尝试androidDebugTest将构建脚本更改为compile

compile 'com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
}
Run Code Online (Sandbox Code Playgroud)

还有这里:

compile 'com.android.support.test.espresso:espresso-contrib:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
    exclude group: 'com.android.support', module: 'support-v4'
    exclude group: 'com.android.support', module: 'design'
    exclude group: 'com.android.support', module: 'recyclerview-v7'
}
Run Code Online (Sandbox Code Playgroud)

但打电话之后

./gradlew assembleRelease --info --debug
Run Code Online (Sandbox Code Playgroud)

我收到此错误消息:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:transformClassesWithJarMergingForRelease'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: javax/annotation/Generated.class
...
BUILD FAILED
Run Code Online (Sandbox Code Playgroud)

此外,通常有两个 gradle 任务assembleDebugassembleDebugAndroidTest使用 Espresso。但是,由于没有assembleReleaseAndroidTest任务,发布版本要做什么?

感谢您提前的建议!

Kev*_*cke 5

您无法将测试编译到应用 APK 中,但可以针对发布构建类型进行测试。在您的情况下,您的发布工件将包含两个 APK:常规应用程序 APK 和测试 APK。请参阅/sf/answers/1264505791/