问题标签 [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.
java - Android 中@SmallTest、@MediumTest 和@LargeTest 注解的用途是什么?
我是 Android 新手,我已经看到使用这些注释的示例代码。例如:
该注释完成了什么?
android - Android检测所有线程何时空闲-单元测试
我如何知道所有线程何时已完成执行并处于空闲状态?
我正在尝试为基于 Java 的 Android 应用程序编写单元测试。测试要求查询内容提供者,并且在实际测试之前将内容添加到 ListView。
我想不通的是如何知道我的所有操作何时完成;特别是当数据库更改时列表视图已完成更新,并且所有数据库操作都已完成。
我可以在我的测试用例中加入睡眠,但正如预期的那样,如果系统负载过重,它们会使事情变得不可靠;并减慢执行速度。
在观看GTAC 2013 之后:Espresso:Android UI 测试的新开始 - YouTube 视频(参见 9:40-11:31 的视频)我认为必须有一种方法来检测所有线程何时空闲,并执行我的下一个代码步骤。
我希望能够实现 Espresso 的糟糕版本,因为我现在想要进行稳定的测试。然后在 Espresso 可用时重写它们。
android - Android espresso maven 和 gradle 设置
有没有人有一个名为espresso的新 Android UI 测试框架的 Maven 设置示例?
android - 使用 Espresso 时出现 NullPointer 异常
我正在尝试使用浓缩咖啡。但是我收到了这个错误,如果我遗漏了一些代码,我没有。
任何想法将不胜感激。
错误日志:
TestExample.java
清单.xml
android - Android Espresso NoMatchingViewException 检查
我正在尝试新的 Android 测试库 Espresso。当我尝试:
测试运行良好。但是当我尝试时:
我得到一个.NoMatchingViewException: No views in hierarchy found matching: with id: is <2131296645>
有没有人见过这样的事情?我最初的反应是这只是一个错误,因为 Espresso 仅在 1.0 版上。我正在使用 Android Studio 并完全按照设置说明进行操作。
android - 使用android gradle + dagger 运行instrumentTests
我最近开始使用 Android Studio 和 gradle 进行 android 开发,发现它总体上比 eclipse/ant 或 maven 好得多。然而,我最近开始尝试用我的应用程序实现某种单元和/或集成测试。我能够使用谷歌最近发布的 Espresso 框架进行基本测试。尽管我需要模拟和注入对象的模拟版本,但我进行了一些测试。我过去在另一个项目中使用过 dagger,所以我将 dagger 包含在我的项目中。但是,由于以下错误,现在我的测试将无法运行:
...
4.1.2 失败:仪器运行因“java.lang.IllegalAccessError”而失败:EspressoApp:connectedCheck
我在这里创建了一个简单的演示: https ://github.com/mwolfe38/android-espresso-dagger
只需克隆,然后从命令行运行: gradle connectedCheck
在上面我尝试了几种不同的依赖方式,最初是这样的:
但这给了我关于静态初始化的错误。这似乎是由 espresso 框架中有关 dagger 的一些静态初始化代码引起的。因此,在向 instrumentTestCompile 添加 dagger 依赖项后,我得到了上面提到的 IllegalAccessError。
任何人都有运气,包括在您的项目中使用匕首并进行浓缩咖啡测试?
android-espresso - 在 Espresso 中单击 ListView 的特定子项
使用 Espresso,我希望能够单击 ExpandableListView(名为 CustomExpandableView)的特定子项。listview 创建一组RelativeLayouts(名为MyContainer)。
理想情况下,我想单击 CustomExpandableView 中的特定 MyContainer。但是,我可以只点击第一个。
MyContainer 对象没有我可以引用的唯一 ID,但它们的子对象有,例如 - “text=Sample Text Here 1”
我尝试了几种不同的变体,使用 onData 传递类类型并尝试让孩子处于特定位置,但它只是不起作用。而且,我想避免获取对象并对其进行迭代,直到找到合适的孩子。
这是视图层次结构的一部分供参考(我从层次结构中删除了不重要的信息):
android - 使用 Espresso:Hamcrest 顶级和 NoClassDefFound
我正在尝试添加Espresso来测试我们的应用程序。
当我没有inhamcrest-1.1.jar
时build.gradle
,我收到以下错误:
当我确实有hamcrest-1.1.jar
in 时build.gradle
,我收到以下错误:
这是build.gradle
我做了一个./gradlew clean build
然后./gradlew example:connectedCheck
运行。
有没有人可以解决这个问题?
android - Android Espresso,测试前唤醒设备。如何使用自定义清单进行测试?
我一直在用 androids new espresso 框架编写测试,发现它运行良好。一件烦人的事情(不是浓缩咖啡特有的)是我必须确保我的屏幕处于唤醒状态并解锁才能运行测试。我找到了一种解决方法(通过各种来源),但是我不确定集成它的最佳方法。
所以这就是我所做的,在我的“家庭”活动中,我有以下代码:
家庭类:
您还需要添加以下权限:
因此,在完成此操作后,我的测试现在唤醒我的手机运行,这样我就不必站岗并确保屏幕在测试开始之前不会关闭。
我宁愿不在我的应用程序中包含这些权限。我知道使用 gradle 可以制作具有自己的 android 清单的不同“风味”,这些清单将合并到主清单中。我正在考虑使用它,但我不想仅仅因为这个原因添加风味,因为它已经在使用测试构建类型来运行。从 android gradle 文档看来,您无法为 instrumentTest 目录创建 AndroidManifest,因为它将自动生成。
但是我想知道是否有另一种方法可以在不创建变体的情况下执行此操作,然后指定测试应该运行该变体。此外,我不确定所有这些的确切语法,并认为将这些信息放在网站上供其他人使用会很好,因为它似乎分散在各处。
最后,如果有人知道更好的方法来解决唤醒电话以进行测试的问题,我很乐意听到它,因为我不是我正在尝试的这种方式的忠实粉丝。
android - Android Espresso vs Actionbar
I have been trying to test an app that has a menu drawer using Espresso.
Now for the strangeness.
In the first test, I open the drawer and click on an item then proceed with the rest of the test. That all works great.
When I add a second test that does the exact same thing, I get an exception. It appears to be something related to content of the menu drawer but I am at a loss.
The exception is this:
And here is the test class