通过writeToTestStorage方法保存位图

问题描述 投票:0回答:2

我尝试用Espresso进行截图测试:

测试

class ScreenshotTest {

@get:Rule
var nameRule = TestName()

@get:Rule
var mActivityTestRule = ActivityTestRule(MainActivity::class.java) 

@Test
fun saveActivityBitmap() {

    capture(mActivityTestRule.activity).bitmap.writeToTestStorage(nameRule.methodName)

}}

清单

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

但失败并显示消息:

没有内容提供商注册: 内容://androidx.test.services.storage.outputfiles/saveActivityBitmap.png。 所有测试服务 apk 都安装了吗?

看来有必要调整ContentProvider...

伙计们,可能有人解决了这个问题,或者可能知道 writeToTestStorage 方法的大量文档在哪里。

Google 不知道这一点,“developer.android.com”仅在发行表中提到了此方法

kotlin automated-tests screenshot android-espresso
2个回答
0
投票

我希望这对某人有帮助。 我在微软应用程序中心遇到了类似的问题。原因是appcenter不支持orchestrator。 此内容提供程序是 https://mvnrepository.com/artifact/androidx.test.services/test-services 的一部分。您应该安装 Orchestrator.apk 和 test-services.apk 来运行测试。 当您在本地模拟器上运行测试时,gradle 脚本会为您执行此操作,但 appcenter 不会


0
投票

这确实取决于

test-services

androidTestImplementation("androidx.test.services:test-services:1.5.0")

然后在Gradle缓存中找到

test-services-1.5.0.apk
,上传到设备并安装...

orchestrator-1.5.0.apk
可能不需要。


人们也可以完全禁用这些屏幕截图:

Espresso.setFailureHandler(DefaultFailureHandler(targetContext, false))
© www.soinside.com 2019 - 2024. All rights reserved.