Articles of espresso

connectedAndroidTest如何运行特定的testing

我是一家创业公司的QA。 我的开发人员安装程序在Android项目中进行testing。 他还设置了Jenkins Jobs来在CI env中运行这些testing。 这是Jenkins作业下“生成” – >“调用Gradle”脚本中的“任务”字段中给出的命令。 干净的assemblerDebug connectedAndroidTest testDebug 我想创build我自己的Jenkins作业来运行不同types的testing。 有没有一种方法可以通过运行“connectedAndroidTest”命令来过滤我的testing? 我尝试使用如下的shell脚本,但它没有工作。 adbshell我的仪器-w / 我收到以下错误信息:[执行烟雾testing套件] $ / bin / bash -xe /var/folders/qr/vtm32_d56vz0hgwg5ppdbswc00007q/T/hudson1779650135635362469.sh + adb shell am instrument -w''class com.draysonwireless.airmapandroid .rewards / BonusTest.java /var/folders/qr/vtm32_d56vz0hgwg5ppdbswc00007q/T/hudson1779650135635362469.sh:第2行:adb:command not found构build步骤'Execute shell'标记为失败已完成:FAILURE

Android:检查button已启用

我在testing我的应用程序时遇到问题。 我创build了一个应该失败的espressotesting,因为无论何时在模拟器中启动我的应用程序,我都会得到预期的行为。 有我的testing: onView(withText("wrong answer")).perform(click()); onView(withId(R.id.nextQuestionButton)).check(matches(isEnabled())); 当启动testing时,没有任何事情被报告,而nextQuestionButton 不应该在点击文本为“错误答案”的radioButton时被启用。

在Android上使用EspressotestingEditText错误

我想testing一个EditText字段是否有错误(使用editText.setError(“Can not be blank!”))。 我用新的AndroidStudio 2.2function创build了一个Espressotesting用例来loggingEspressotesting。 所以代码几乎是自动生成的。 但现在它只检查是否显示editText。 @RunWith(AndroidJUnit4.class) public class CreateNoteActivityTitleCannotBeBlank { @Rule public ActivityTestRule<CreateNoteActivity> mActivityTestRule = new ActivityTestRule<>(CreateNoteActivity.class); @Test public void createNoteActivityTitleCannotBeBlank() { ViewInteraction floatingActionButton = onView( allOf(withId(R.id.fab_add_note), withParent(allOf(withId(R.id.activity_create_note), withParent(withId(android.R.id.content)))), isDisplayed())); floatingActionButton.perform(click()); ViewInteraction editText = onView( allOf(withId(R.id.tiet_note_title), childAtPosition( childAtPosition( withId(R.id.til_title), 0), 0), isDisplayed())); editText.check(matches(isDisplayed())); } private static Matcher<View> childAtPosition( final Matcher<View> parentMatcher, final […]

使用onView(withId(…))时,用Espresso单击操作栏中的菜单项

我正在使用Espresso进行testing,首先打开操作栏: openActionBarOverflowOrOptionsMenu(getInstrumentation().getTargetContext()); 一切都OK到这里,但是我想点击一个选项菜单: onView(withId(R.id.action_menu)).perform(click()); 菜单布局xml有一个ID为“action_menu”的选项。 我得到一个错误: android.support.test.espresso.NoMatchingViewException: No views in hierarchy found matching: with id: ***.********.******.android.debug:id/action_menu If the target view is not part of the view hierarchy, you may need to use Espresso.onData to load it from one of the following AdapterViews:android.support.v7.widget.ListPopupWindow$DropDownListView{43fd3f58 VFED.VC. .F…… 24,24-612,168} 我通过使用以下步骤来完成工作: onView(withText(R.string.action_report)).perform(click()); 我想知道什么是错的编号虽然。 有任何想法吗?

如何使用React Native的Espresso UItesting?

我正在尝试在我的React Native Android应用程序上使用Espresso进行一些UItesting,以使用Fastlane的Screengrab。 我遵循本教程将React Native集成到现有的应用程序中,以便能够编写testing。 但是当我开始编写我的UItesting时,我无法find写什么,以及如何定位组件,并执行一个单击它。 我发现这个职位,有人举例说明如何编写Espresso Test for React Native,但它不适用于我…我的组件都没有设置资源ID,所以我不知道如何执行一些操作我的应用程序。 如果有人能够帮助我在React Native应用程序上使用Espresso编写UItesting,或者给我另一个解决scheme,以获取我的Android应用程序的自动截图,那将是非常棒的。 如果您有任何问题,请告诉我。

如何在android espressotesting中向下滚动屏幕? 我需要validation屏幕上显示的文字

我正在执行下面的testing来validation屏幕上的文本,文本存在于视图中,但需要滚动页面才能手动查看文本。 onView(withText("Launch")).check(ViewAssertions.matches(isDisplayed())); onView(withText("January 2010")).check(ViewAssertions.matches(isDisplayed())); 以下错误即将到来,但是文本存在于视图中,但需要滚动页面才能手动查看文本。 android.support.test.espresso.base.DefaultFailureHandler $ AssertionFailedWithCauseError:'在屏幕上向用户显示'与select的视图不匹配。 预期:在屏幕上显示给用户Got:“TextView {id = 2131361941,res-name = project_details_label_tv,visibility = VISIBLE,width = 249,height = 41,has-focus = false,has-focusable = false,has -window-focus = true,is-clickable = false,is-enabled = true,is-focused = false,is-focusable = false,is-layout-requested = false,is-selected = false,root-is-layout -requested = false,has-input-connection = false,x = 4.0,y = 24.0,text = Status,input-type = 0,ime-target = false,has-links = […]

registerIdlingResources弃用replace不起作用

我试图根据android文档使用IdlingRegistry方法来取代我的Espresso registerIdlingResources和unregisterIdlingResources不推荐使用的方法。 我的一些testing工作在更新之前,现在不再有效了……这些testing一起工作,但不能一起工作。 我注意到,与旧版本( Espresso类)有一点区别,这行不在IdlingRegistry类中: baseRegistry.sync(IdlingRegistry.getInstance().getResources(), IdlingRegistry.getInstance().getLoopers()); 我认为这个sync方法是非常重要的我的自定义IdlingResource … 我怎样才能没有这条线同步我的活套? 谢谢你的帮助。 编辑:我使用EspressoCore 3.0.1与亚军/规则1.0.1 Edit2:指定弃用文档的链接: Here and Here 。

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

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

如何使用espresso点击clickablespan?

我有一个多个可点击跨度的文本视图。 我想能够testing点击这些跨度。 我尝试设置一个自定义ViewAction,它将在TextView中findclickablespans,然后将其文本与所需的文本进行匹配,然后单击该文本的xy坐标。 但是,似乎添加到TextView的跨度不是typesClickableSpan,而是添加跨度的片段。 因此,我无法区分链接跨度。 有一个更好的方法吗? 添加跨度: Util.addClickableSpan(spannableString, string, linkedString, new ClickableSpan() { @Override public void onClick(View textView) {} }); tvAcceptTc.setText(spannableString); tvAcceptTc.setMovementMethod(LinkMovementMethod.getInstance()); 效用方法: public static void addClickableSpan(SpannableString spannableString, String text, String subText, ClickableSpan clickableSpan) { int start = text.indexOf(subText); int end = text.indexOf(subText) + subText.length(); int flags = Spanned.SPAN_EXCLUSIVE_EXCLUSIVE; spannableString.setSpan(clickableSpan, start, end, flags); } 定义ViewAction: […]

如何从浓咖啡中获取视图传递给IdlingResource?

我基本上有一个自定义的IdlingResource,需要一个视图的构造函数参数。 我找不到真正谈到如何实现它的任何地方。 我试图使用这个答案: https : //stackoverflow.com/a/32763454/1193321 正如你所看到的,它需要一个ViewPager,但是当我在testing类中注册IdlingResource时,我不知道如何获得我的视图。 我试过findViewById(),我试着得到当前正在运行的活动,然后调用findViewById(),没有运气。 任何人都知道在这种情况下做什么?