我尝试过使用Espresso测试框架并编写了一个简单的测试。没什么特别的,就是这段代码:onView(withId(R.id.login_button_stub)).perform(click());测试在Nexus5设备和搭载Android5.0的Genymotion上运行良好,但在搭载Android4.x的AndroidEmulator4.x、5.0、Genymotion2.3、4.x和LGG2上失败。在所有这些设备/模拟器/模拟器上,单击按钮并执行其操作(在我的情况下转到另一个屏幕)。问题是它在某些设备上阻塞了perform。这在60秒后以一个很好的异常结束:android.su
截至昨天的GoogleIO主题演讲,我们在项目中进行UI测试的方式似乎有了重大更新。得益于新的测试记录器功能,自动化测试即将向前迈出一大步。开发人员将能够开始录制并开始使用他们的应用程序。随着每个Action的执行,它都会变成Espresso代码,可以在多个平台上播放,包括谷歌的云测试实验室。这可能会将编写测试的时间缩短到过去的十分之一。我安装了最新版本的AndroidStudio2.2Preview1,我想知道我应该怎么做才能启用此功能。 最佳答案 终于来了!AndroidStudio2.2预览版3(可用here)请注意,任何现有
我正在尝试导入importandroid.support.test.InstrumentationRegistry;我的build.gradle文件androidTestCompile'com.android.support.test:testing-support-lib:0.1'androidTestCompile'com.android.support.test:runner:0.2'androidTestCompile'com.android.support.test:rules:0.2'androidTestCompile'com.android.support.test.e
当我在运行一些espresso测试时显示的布局中有一个ProgressBar-然后我遇到:Causedby:android.support.test.espresso.AppNotIdleException:Loopedfor1670iterationsover60SECONDS.ThefollowingIdleConditionsfailed.有什么好的方法可以解决这个问题?发现了一些骇人听闻的东西,但正在寻找一种好方法 最佳答案 如果在测试开始时ProgressBar不可见,则Drawable可以替换为自定义ViewAction
Espressocontrib(com.android.support.test.espresso:espresso-contrib:2.2.1)openDrawer方法已弃用那我应该怎么打开抽屉呢? 最佳答案 这是一个关于如何使用新的open和close方法的示例:onView(withId(R.id.drawer_layout)).perform(DrawerActions.open());onView(withId(R.id.drawer_layout)).perform(DrawerActions.close());
我一直在用androids的新espresso框架编写测试,发现它运行良好。一件烦人的事情(不是Espresso特有的)是我必须确保我的屏幕处于唤醒状态并解锁才能运行测试。我找到了一种解决方法(通过各种来源),但我不确定集成它的最佳方法。这就是我所做的,在我的“主页”Activity中,我有以下代码:Home.class:publicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);/************Putthisinaconditionalforatestversion*****
我正在尝试编写一个espresso函数来匹配espresso根据我的函数找到的第一个元素,即使找到多个匹配项也是如此。例如:我有一个包含项目价格的单元格的ListView。我希望能够将货币转换为加元并验证商品价格是否为加元。我正在使用这个功能:onView(anyOf(withId(R.id.product_price),withText(endsWith("CAD")))).check(matches(isDisplayed()));这会引发AmbiguousViewMatcherException。在这种情况下,我不在乎有多少或几个单元格显示CAD,我只是想验证它是否显示。有没有办
我正在尝试在我的Espresso仪器测试中设置Dagger,以模拟对外部资源(在本例中为RESTful服务)的调用。我在Robolectric中为我的单元测试遵循的模式是扩展我的生产应用程序类并使用将返回模拟的测试模块覆盖Dagger模块。我在这里尝试做同样的事情,但是当我尝试将应用程序转换为我的自定义应用程序时,我在我的Espresso测试中得到了ClassCastException。这是我到目前为止的设置:生产在app/src/main/java/com/mypackage/injection下我有:MyCustomApplicationpackagecom.mypackage.i
有没有可靠的方法让Espresso等待WebView完成加载?我已经尝试了here概述的方法但发现它不可靠。它还有其他缺点:它依赖于替换WebView的WebChromeClient。任何现有的WebChromeClient也不能被包装,因为WebViewrt出于某种原因没有getWebChromeClient()方法。它需要一个特定的WebView实例,因此每次我使用WebView启动Activity时,我都必须获取WebView实例并为其注册一个新的WebviewIdlingResource。我希望有人能找到没有这些缺点的解决方案。我曾希望espresso-web包可以提供解决
我一直在尝试通过测试来覆盖我的Android应用程序并开始使用espressorecently.到目前为止,它给我留下了深刻的印象。然而,我的应用程序的大部分功能都需要用户登录。而且由于所有测试都是独立的,这需要为每个测试注册一个新用户。这工作正常,但每次测试所需的时间因此大大增加。我正在尝试找到一种方法,在(测试)类中注册用户一次,然后使用同一个用户帐户执行该类中的所有测试。我能够做到这一点的一种方法是实际上只有一个测试(@Test)方法按我想要的顺序运行所有其他测试。然而,这是一种全有或全无的方法,因为gradlecAT任务只在最后输出一次结果,而不提供有关可能通过/失败的中间测试