Articles of ui testing

如何检测Android应用程序是否正在使用Espresso运行UI测试

我正在为Android编写一些Espresso测试。 我正在运行以下问题: 为了使某个测试用例正常运行,我需要在应用程序中禁用某些function。 因此,在我的应用程序中,我需要检测我是否正在运行Espresso测试,以便我可以禁用它。 但是,我不想使用BuildConfig.DEBUG ,因为我不希望在调试版本中禁用这些function。 此外,我想避免创建一个新的buildConfig,以避免创建太多的构建变体(我们已经定义了很多风格)。 我一直在寻找一种方法来定义buildConfigField以进行测试,但我在Google上找不到任何引用。

Espresso Tests无法访问类文件

我在尝试运行ui测试时遇到以下错误。 /Users/etiennelawlor/workspace/MovieHub/app/src/androidTest/java/com/etiennelawlor/moviehub/MoviesFragmentTest.java Error:(34, 28) error: cannot access AppCompatActivity class file for android.support.v7.app.AppCompatActivity not found Error:(34, 58) error: cannot infer type arguments for ActivityTestRule Error:(41, 41) error: cannot access IdlingResource class file for android.support.test.espresso.IdlingResource not found Error:(51, 40) error: cannot access RecyclerView class file for android.support.v7.widget.RecyclerView not found Error:Execution failed for task ‘:app:compileDebugAndroidTestJavaWithJavac’. Compilation failed; see […]

无法让Robotium在Android Studio中运行

我很难让Robotium在基于gradle的Android Studio上工作,我找不到办法 这是我的build.gradle文件 buildscript { dependencies { repositories { mavenCentral() mavenLocal() } classpath ‘com.android.tools.build:gradle:0.5.+’ } } apply plugin: ‘android’ repositories { mavenCentral() /* maven { url “https://oss.sonatype.org/content/repositories/snapshots” }*/ } sourceSets { testLocal { java.srcDir file(‘src/test/java’) resources.srcDir file(‘src/test/resources’) } } android { compileSdkVersion 17 buildToolsVersion “17.0.0” defaultConfig { minSdkVersion 15 targetSdkVersion 17 } sourceSets { instrumentTest.setRoot(‘src/test’) […]

使用Espresso和RxJava测试无尽的滚动RecyclerView

我有RecyclerView无尽的滚动。 因此,当用户到达列表中的last – 2位置时,我呼叫服务器以获取更多数据,并且在通话期间,我再添加一个项目 – 进度一个。 现在,我正在尝试用Espresso编写体面的UI测试,它将检查当前无限滚动是否正常工作: @Test public void checkIfProgressShown() { InstaFeed feed = TestDataFactory.makeInstaFeed(20); InstaFeed oldFeed = TestDataFactory.makeInstaFeed(20); when(mockDataManager.getFeedItemsFromServer()).thenReturn(Observable.just(feed.getInstaItems())); when(mockDataManager.getOldFeedItemsFromServer()).thenReturn(Observable.just(oldFeed.getInstaItems()) .delay(2, TimeUnit.SECONDS)); instaActivityActivityTestRule.launchActivity(null); int position = 0; for (InstaItem item : feed.getInstaItems()) { onView(withId(R.id.recycler_view)) .perform(RecyclerViewActions.scrollToPosition(position)); onView(withText(item.getLocation().getName())) .check(matches(isDisplayed())); // Line of crash position++; } onView(withId(R.id.progress)) .check(matches(isDisplayed())); } 所以基本上说,我试图延迟Observable的响应,显示新的一批项目,以便Espresso可以向下滚动到最后一项并使我的progress项可见。 问题在于测试只是堆栈,从UI的角度看它看起来像: 不要混淆这里没有进度条 – 在设备上禁用animation,所以没关系。 最后,小项是有进展的项目 60秒后它崩溃了 […]

如何使用React Native的Espresso UI测试?

我正在尝试在我的React Native Android应用程序上使用Espresso进行一些UI测试,以使用Fastlane的Screengrab。 我已按照本教程在现有应用程序中集成React Native以便能够编写测试。 但是当我开始编写UI测试时,我无法find要编写的内容以及如何定位组件并执行单击操作。 我find了这篇文章,其中有人举例说明如何为React Native编写Espresso Test,但它对我不起作用…我的组件都没有设置资源ID,所以我不知道如何执行某些操作我的应用程序。 如果有人可以帮我在React Native应用程序上用Espresso编写UI测试,或者给我另一个解决方案来获取我的Android应用程序的自动截图,那将是非常棒的。 如果您有任何疑问,请告诉我。

如何旋转活动,我的意思是:使用Espresso改变屏幕方向?

我已经决定使用Google的Espresso进行应用程序测试的测试标准之一是: 测试应在屏幕方向旋转后保持活动状态 使用Espresso时如何旋转屏幕? 我尝试了以下Robotium代码(是的,我在我的Espresso测试中放置了Robotium代码,所以起诉我) solo.setActivityOrientation(solo.LANDSCAPE); solo.setActivityOrientation(solo.PORTRAIT); 但是当我在Espresso测试中运行它时,它会崩溃应用程序。 有没有办法做到这一点? 在此先感谢您的帮助

在运行测试之前,android espresso登录一次

我一直试图通过测试覆盖我的Android应用程序,并且最近开始使用espresso 。 到目前为止,它印象深刻。 但是,我的应用程序的大部分function都要求用户登录。由于所有测试都是独立的,因此需要为每个测试注册一个新用户。 这很好,但是每次测试所需的时间都因此而大大增加。 我试图find一种方法在类(测试)中注册一次用户,然后使用相同的用户帐户来执行该类中的所有测试。 我能够做到这一点的一种方法是实际上只有一个测试( @Test )方法按我想要的顺序运行所有其他测试。 然而,这是一种全有或全无的方法,因为gradle cAT任务仅在结束时输出结果一次,而不提供有关可能已通过/失败的中间测试的信息。 我也尝试了@BeforeClass方法但是没有工作(没有我使用过它的类的gradle输出,即使使用调试选项,它似乎花了很长时间才进入下一类测试)。 是否有更好的方法在课程开始时注册用户一次,然后在测试结束时注销一次? 任何帮助赞赏。

Espresso测试错误:AppNotIdleException

我关闭了开发者选项的所有animation。 但是当我尝试点击其中一个按钮时,我仍然会遇到此exception。 我的应用程序确实是活跃的,并没有完全闲置,但我无法改变它。 android.support.test.espresso.AppNotIdleException: Looped for 6930 iterations over 60 SECONDS. The following Idle Conditions failed . at dalvik.system.VMStack.getThreadStackTrace(Native Method) at java.lang.Thread.getStackTrace(Thread.java:580) at android.support.test.espresso.base.DefaultFailureHandler.getUserFriendlyError(DefaultFailureHandler.java:92) at android.support.test.espresso.base.DefaultFailureHandler.handle(DefaultFailureHandler.java:56) at android.support.test.espresso.ViewInteraction.runSynchronouslyOnUiThread(ViewInteraction.java:184) at android.support.test.espresso.ViewInteraction.doPerform(ViewInteraction.java:115) at android.support.test.espresso.ViewInteraction.perform(ViewInteraction.java:87)

使用Espresso测试ViewPager。 如何对项目的按钮执行操作?

我有一个ViewPager项目只包含一张图片和一个按钮。 我无法与项目(页面)的UI成功交互,因为除了显示的图片之外,没有什么可以区分(从UI的角度来看) ViewPager所有项目。 我试图只选择一个有位置的项目: onData(is(instanceOf(ItemClass.class))) .atPosition(0) .onChildView(withId(R.id.button)) .perform(click()); 造成: NoMatchingViewException:层次结构中找不到匹配的视图:可从类中分配:class android.widget.AdapterView 如何使用Espresso访问和测试ViewPager项目?

是否有可能使用espresso进行截图并testing像素值?

我开始使用espresso,并编写了一些简单的UItesting来点击button,input文本并检查是否一切都在那里应该是。 现在我想要截图并testing一些像素值,但是我找不到这样做的方法。 有没有人有任何build议? 用浓咖啡甚至可以吗?