首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 ><process> --> Espresso :包不属于Espresso导致测试失败

<process> --> Espresso :包不属于Espresso导致测试失败
EN

Stack Overflow用户
提问于 2018-02-26 01:24:29
回答 1查看 1.3K关注 0票数 14

我有一个Android Espresso代码,它试图点击一个按钮,但它失败了一个安全错误。

这是Espresso命令:

代码语言:javascript
复制
Espresso.onData(Matchers.allOf(Matchers.is(Matchers.instanceOf(Preference.class)), withKey(PreferenceKey.pref_custom_server_base_url.toString()), withSummaryText(Configurations.DEFAULT_SERVER_URL))).check(matches(isCompletelyDisplayed()));

这是我收到的错误:

代码语言:javascript
复制
java.lang.SecurityException: Package xxx.xxx.test does not belong to 10095
at android.os.Parcel.readException(Parcel.java:2004)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
at android.content.ContentProviderProxy.call(ContentProviderNative.java:651)
at android.provider.Settings$NameValueCache.getStringForUser(Settings.java:1924)
at android.provider.Settings$Global.getStringForUser(Settings.java:10362)
at android.provider.Settings$Global.getString(Settings.java:10351)
at android.provider.Settings$Global.getFloat(Settings.java:10695)
at android.support.test.espresso.base.DefaultFailureHandler.getGlobalSetting(DefaultFailureHandler.java:178)
at android.support.test.espresso.base.DefaultFailureHandler.getSetting(DefaultFailureHandler.java:154)
at android.support.test.espresso.base.DefaultFailureHandler.getTransitionAnimationScale(DefaultFailureHandler.java:124)
at android.support.test.espresso.base.DefaultFailureHandler.isAnimationAndTransitionDisabled(DefaultFailureHandler.java:112)
at android.support.test.espresso.base.DefaultFailureHandler.getUserFriendlyError(DefaultFailureHandler.java:69)
at android.support.test.espresso.base.DefaultFailureHandler.handle(DefaultFailureHandler.java:52)
at xxx.xxx.test.instruments.failure.ScreenshotFailureHandler.handle(ScreenshotFailureHandler.java:36)
at android.support.test.espresso.ViewInteraction.waitForAndHandleInteractionResults(ViewInteraction.java:312)
at android.support.test.espresso.ViewInteraction.desugaredPerform(ViewInteraction.java:167)
at android.support.test.espresso.ViewInteraction.perform(ViewInteraction.java:110)
at android.support.test.espresso.DataInteraction$DisplayDataMatcher$1.apply(DataInteraction.java:206)
at android.support.test.espresso.DataInteraction$DisplayDataMatcher$1.apply(DataInteraction.java:203)
at android.support.test.espresso.DataInteraction$DisplayDataMatcher.<init>(DataInteraction.java:223)
at android.support.test.espresso.DataInteraction$DisplayDataMatcher.<init>(DataInteraction.java:198)
at android.support.test.espresso.DataInteraction$DisplayDataMatcher.displayDataMatcher(DataInteraction.java:241)
at android.support.test.espresso.DataInteraction.makeTargetMatcher(DataInteraction.java:143)
at android.support.test.espresso.DataInteraction.check(DataInteraction.java:137)
at xxx.xxx.test.steps.ChangeServerUrlSteps.checkSettingsSaved(ChangeServerUrlSteps.java:112)
at xxx.xxx.test.steps.Prerequisites.serverConfigPrerequisites(Prerequisites.java:38)
at ✽.Given I am connected (features/001_login.feature:8)

你知道为什么会发生这种情况吗?谢谢!代码在Emulator和Cloud设备上运行时出现相同的错误。

EN

回答 1

Stack Overflow用户

发布于 2020-01-15 17:53:19

我在这个堆栈溢出问题的答案中找到了这个问题的解决方案:java.lang.SecurityException: Permission Denial: getIntentSender() when using UiAutomation in a test

在指定数据库的位置时,请使用getTargetContext()而不是getContext()

代码语言:javascript
复制
File dbFolder = InstrumentationRegistry.getInstrumentation().getTargetContext().getExternalCacheDir();

而不是

代码语言:javascript
复制
File dbFolder = InstrumentationRegistry.getInstrumentation().getContext().getExternalCacheDir();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48976324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档