问题标签 [android-espresso]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 由于“java.lang.IllegalAccessError”,检测运行失败。Gradle + 浓缩咖啡
我想在 gradle 中使用 espresso 测试。为此,我尝试使用Jake Wharton 的双份浓缩咖啡,但它不起作用。
我读过它可能是重复的依赖项,但我已经排除了 Dagger 和 Support-v4 库,就像 Jake 在他的自述文件中所写的那样。
谁能给我建议这里可能出了什么问题?
测试类:
构建.gradle:
试验结果:
日志猫:
android - Espresso CursorAdapter:点击第一项
我无法单击Listview
由CursorAdapter
. 这是我尝试过的:
...这就是我得到的:
com.google.android.apps.common.testing.ui.espresso.PerformException:在视图“可从类分配:android.widget.AdapterView”上执行“加载适配器数据”时出错。在 com.google.android.apps.common.testing.ui.espresso.base.DefaultFailureHandler 的 com.google.android.apps.common.testing.ui.espresso.PerformException$Builder.build(PerformException.java:67)。 getUserFriendlyError(DefaultFailureHandler.java:57) 在 com.google.android.apps.common.testing.ui.espresso.base.DefaultFailureHandler.handle(DefaultFailureHandler.java:40) 在 com.google.android.apps.common.testing。 ui.espresso.ViewInteraction.runSynchronouslyOnUiThread(ViewInteraction.java:159) 在 com.google.android.apps.common.testing.ui.espresso.ViewInteraction.doPerform(ViewInteraction.java:90) 在 com.google.android.apps。 common.testing.ui。
android - 当 dagger 已包含在编译依赖项中时,将 Espresso 添加到 instrumentTest 依赖项
我有一个 gradle 项目(使用 Gradle 1.9),我正在尝试将 espresso(来自https://github.com/JakeWharton/double-espresso)添加到我的项目中,该项目在其编译依赖项中有 dagger。
这是我的依赖结构:
依赖{
}
现在我的问题是当我在测试开始后不久通过“gradle connectedInstrumentTest”开始测试时(我看到活动被触发),我收到以下错误:
...activity.MainActivityTest > testItemText[Nexus 5 - 4.4.2] FAILED java.lang.IllegalStateException:创建对象图时出错:com.google.android.apps.common.testing.ui.espresso.FailureHandler 无法绑定com.google.android.apps.common.testing.ui.espresso.base.BaseLayerModule 类所需的密钥 com.google.android.apps.common.testing.ui.espresso.FailureHandler :ClioAndroid:connectedInstrumentTest FAILED
当我注释掉排除组时:'com.squareup.dagger' 我得到另一个错误: Instrumentation run failed due to 'java.lang.IllegalAccessError' 这是根据“ http://b.android.com/65445 ”预期的。
我认为问题是添加“排除组:'com.squareup.dagger'”与浓缩咖啡的匕首对象图相混淆。我一直无法找到解决方法。任何帮助,将不胜感激。
android - 测试 Android 应用程序时无法注入点击
在使用 Android 测试框架(例如 Espresso、Robotium)时,我所有的测试都失败了,并在 logcat 中出现了这种警告。
W/InputDispatcher(61):权限被拒绝:从 pid 123 uid 10001 注入事件 W/WindowManager(61):输入事件注入失败。
android - getActivity() 调用导致 RuntimeException:无法启动意图 Intent act=android.intent.action.MAIN
更新#1:更多信息添加到这篇文章的末尾
我是 Android 开发和测试的新手。
我有三个浓缩咖啡测试。第一个测试通过,但第二个测试不会运行,因为在第二个测试之前调用 setUp() 方法中的 getActivity() 总是失败:
Blockquote java.lang.RuntimeException:无法在 45 秒内启动 Intent Intent { act=android.intent.action.MAIN flg=0x10000000 cmp=my.packagename/.ActivityMain }。...
第三次测试通过。
我在创建时没有任何长时间运行的操作、动画或网络调用。我可以单击应用程序中的所有菜单项,手动重复测试流程而不会出现问题。
由于某种原因,第一个测试在第二个测试之前“中断”了 setUp() 中的下一个 getActivity() 调用。以下所有测试(在第二次测试之后)将运行正常。
我发现了类似的问题,但看起来它没有解决,而且问题有点不同。
测试代码:
错误跟踪:
更新#1
我为该项目创建了一个干净的 eclipse 项目和一个干净的 Espresso 测试。我能够在 Espresso 测试运行期间重现相同的错误(但我仍然不确定此错误的原因在我的真实应用中是否相同):
目标应用程序有 3 个活动(主要、第二个、第三个)。用户通过单击菜单项在它们之间导航:主要活动开始第二个,第二个活动开始第三个。
我发现如果我在第一次测试中调用 clickMenuItem()(见下文)和 Thread.sleep(500),这会导致在第二次测试之前 getActivity() 调用中的 setUp() 崩溃。如果睡眠超时小于 0.5 秒,则不会发生崩溃。
同时如果调用 Thread.sleep(10000) 并且不调用 clickMenuItem() 也没有崩溃。它将在第一次测试中成功休眠 10 秒,并且也将通过第二次测试。
测试代码:
目标代码:
主要活动:
第二个活动:
第三项活动:
android - 如何从 Espresso 生成测试报告
我有一个使用 Ant 在 Jenkins 上成功运行的测试项目。我在控制台输出中看到了测试结果,但如何生成报告?
android - intellij + gradle + robolectric + espresso
我正在尝试使用上面列出的框架设置项目。我正在使用这个演示项目deckard-gradle,我无法同步gradle。它说 org.robolectric.gradle:gradle-android-test-plugin:0.9.4-SNAPSHOT 没有找到。我该如何解决?有人做过这项工作吗?这是 build.gradle 文件
android - Espresso - 在列表视图中按文本点击
我正在尝试使用 Espresso 在列表视图中单击文本。我知道他们有这个指南,但我不知道如何通过查找文本来完成这项工作。这是我尝试过的
正如预期的那样,这没有奏效。该错误表示层次结构中没有视图。有谁知道如何选择字符串?("ASDF"
在这种情况下)提前谢谢。
由于@haffax而更新
我收到错误:
com.google.android.apps.common.testing.ui.espresso.AmbiguousViewMatcherException: 'is assignable from class: class android.widget.AdapterView' 匹配层次结构中的多个视图。
第二个错误
使用此代码
我收到这个错误
com.google.android.apps.common.testing.ui.espresso.PerformException:在视图上执行“加载适配器数据”时出错,内容描述为“MapList”。
引起:java.lang.RuntimeException:找不到匹配的数据:asString(以“ASDF”开头的字符串)
解决方案
onData(anything()).inAdapterView(withContentDescription("desc")).atPosition(x).perform(click())
java - 无法为 android 运行 espresso 测试
我在为 android 设置/运行 espresso 测试时遇到了一些问题。我的 TestClass 如下所示:-
AndroidManifest.xml 看起来像这样:-
并且运行配置已更新为使用 Google InGoogleInstrumentationTestRunner
作为 InstrumentationRunner。
但是,当我运行测试时,它会在控制台上为我提供以下信息:-
- 在设备 emulator-5554 上启动仪器 android.test.InstrumentationTestRunner
- 向 Eclipse 发送测试信息
- 测试完成
没有提到运行测试并且测试不运行。我在这里能错过什么?
java - 在 Dalvik 运行时设备上运行 Espresso 仪器测试的问题
我遇到了与FragmentActivity 类似的问题,无法通过 ActivityInstrumentationTestCase2 进行测试
顶级解决方案的问题只适用于使用 Eclipse 构建系统。我正在为我的项目使用 Gradle。
在运行 ART 运行时的 Nexus 5 上,我的 Espresso 仪器测试运行良好。当我在 Dalvik 运行时或模拟器上使用 Nexus 4 时,我遇到了在测试框架之外运行应用程序时不会发生的异常。
在日志中,我发现这些可疑消息类似于链接的问题:
ProgressDialogFragment
是一个子类,DialogFragment2
它是 Android 支持库的类的子DialogFragment
类
如果有帮助,这是我的 Gradle 文件中的依赖项:
所以我的问题是如何确保在应用程序 APK 和测试 APK 之间使用相同的支持库?我已经尝试添加instrumentTestCompile 'com.android.support:support-v4:+'
以确保相同的支持库版本,但这没有帮助。