问题标签 [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 - Android Espresso waitFor.. and Thread.sleep() solution
I've just started using Espresso, before that I have tried Robotium. I need to test LoginActivity. The logic is:
- User enters correct credentials;
- User sees "Logging in.." string;
- User waits for string to disappear;
- User is in MainActivity and sees "You're logged in"
testLogin source:
The problem was that espresso didn't wait for "You"re logged in" string to appear, it was trying to find it while logging still was in process.
logcat:
com.google.android.apps.common.testing.ui.espresso.NoMatchingViewException: No views in hierarchy found matching: with text: is "You're logged in"
I've tried using Thread.sleep(10000), but it terminates the run on Thread.sleep(10000) and gives me error:
Test failed to run to completion. Reason: 'Instrumentation run failed due to 'Process crashed.''. Check device logcat for details Test running failed: Instrumentation run failed due to 'Process crashed.'
logcat:
@@@ @@@ @@@was killed cancelService in HttpReRegistrationService
Before that, I used the waitForActivity(MainActivity.class) method. Is there any workaround to make this work?
android - 在仪器测试中以编程方式设置模拟器/设备方向
在我的仪器测试中,我想在横向和纵向模式下测试一些东西,所以我想在测试开始之前设置方向。有没有办法以编程方式设置设备或模拟器方向?
我知道该setRequestedOrientation()
方法,但这适用于某个活动,如果启动另一个活动,我必须记住再次调用它。我正在寻找的是一种“全局”设置方向的方法,以便每个新活动都自动以该方向开始。
更新:
该解决方案必须满足 2 个要求:1)它不会让我更改我的生产代码,2)它需要在 CI 环境中运行。
android - 无法运行 android espresso 测试
我正在尝试运行 Android espresso 测试,但他们一直以 java.lang.NoClassDefFoundError: com.blokura.testexample.app.MainActivity 失败
我正在使用 Jake Wharton 的双份浓缩咖啡插件。
我尝试了在github repo和deckard上看到的 Jake 的设置,但没有运气。
我不知道我错过了什么。
这是项目结构
这是 build.gradle 文件源代码:
EspressoTest.java
MainActivity.java
完整的日志
android - 浓缩咖啡 - 设置 SeekBar
有谁知道,如何将 seekBar 设置为特定值或只需单击 Espresso UI 测试上的该视图?
我只是得到一个例外:在带有 id 的视图上执行“单击”时出错...
android - 使用 Espresso 进行测试时如何提供模拟数据
我们有一个非常大的 Android 应用程序,没有任何测试。我们正在遭受典型的质量/太长的手动回归测试周期问题。
作为一个服务器端开发者,刚接触Android,我想介绍一下开发者测试。
我可以看到如何使用 JUnit 对普通 Java 代码进行单元测试。
然而,活动/片段/适配器被证明更加困难。
我看了 GTAC 的 Espresso 视频,印象深刻并决定使用它。
我苦苦挣扎的地方是如何为我的测试用例提供模拟数据,然后确认显示。
这甚至可能吗?似乎 Espresso 用于黑盒测试,这极大地限制了它对开发人员(其目标受众)的使用,因为(通常)黑盒测试是由 QA 完成的。
android - 浓缩咖啡:如何单击列表视图中的图像之一?
帮助!!!
我想在 Espresso 中测试 android ui,但图像每次都会改变。
我尝试这种方式,但仍然无法点击:
错误日志:
android - 虚拟设备上的仪器测试失败
我正在使用 Jake Wharton 的Double Espresso库在我的应用程序中设置仪器测试。测试在我的手机上运行良好,但在任何虚拟设备上都会崩溃(我尝试了模拟器和 Genymotion 设备)。
我得到的错误是IllegalAccessError
[previous](( Instrumentation run failed due to 'java.lang.IllegalAccessError'. Gradle + Espresso )。然而,令我困惑的是为什么它只发生在虚拟设备上。设置应该如果它能够在物理设备上运行就可以了。
堆栈跟踪包括所有地方的错误,但报告为致命的错误是:
无论如何,我尝试排除所有可能发生冲突的库,但我仍然无法让它工作。有没有人对问题可能是什么甚至如何排除故障有任何想法?
该问题似乎也与daggger
应用程序中使用的问题有关。MyApp:32 指向ObjectGraph
创建的行,以下两行在堆栈跟踪中。
**更新:** 该问题可能与虚拟设备上的 Dalvik VM 有关。我的手机设置为 ART 并且之前曾报告过与 Dalvik 类似的问题。应该通过添加以下内容来修复它:
根据图书馆页面,但这似乎没有帮助。
android - 带有 ViewPager、FragmentStatePagerAdapter 和 api 调用的 Espresso
我有一个活动 MainActivity,它由一个带有选项卡的 ViewPager 组成,用于在不同页面(片段)之间切换。在第一页(FragmentA,onResume())上,我执行一个 api 调用来获取数据并为该页面 onResume() 设置视图。这个页面可以被认为是我的主页,所有的动作都来源于此。
如果我使用 AsyncTask,Espresso 是否应该自动等待 - 一旦我启动 MainActivity - 从第一页片段进行的 api 调用完成?或者我是否需要针对这种情况实施 IdlingResource/Sleep?我不确定 FragmentStatePagerAdapters 和 ViewPagers 的线程是如何工作的。
这是测试这个的最好方法吗?我是否需要重构代码以从 MainActivity 而不是在片段中进行 api 调用等?
android - 有没有办法为 Espresso 测试(或类似的东西)设置构建配置字段?
我正在Android中进行自动化测试,我正在尝试找出一种方法来确定 - 在代码中 - 它是否通过 Espresso 执行。我遇到了以下情况:
但这不起作用。我可以做类似的事情吗?有没有办法在 build.gradle 中为 Espresso 测试添加 buildConfigField?
android - 使用 Espresso 测试 Android 组件
我有许多自定义 Android 组件,并希望使用 Espresso 对其进行测试。在针对 Espresso 测试运行时,Activity
我在目录中添加了一个简单的Activity
类,该类以androidTest
编程方式创建一个视图,其中包含我的组件,准备好进行测试。
例如,如果我正在测试一个MyView
组件,那么我的 Espresso 测试类可能看起来像这样:
简单MyViewTestActivity
如下:
我的问题是我似乎需要将测试Activity
类(在这种情况下)添加MyViewTestActivity
到 mainAndroidManifest.xml
以使其工作,否则Unable to resolve activity for: Intent...
在尝试运行测试时会收到错误消息。但是我现在在主清单中有测试活动,这似乎是一件坏事。
如何设置测试清单中包含但不是主要的特定于测试的活动?
我正在使用基于 gradle 的 Android 构建系统。