Articles of android espresso

如何通过Espresso android.widget.TextView setError进行测试?

我有password.setError(getResources().getString(R.string.incorrect_data)); 如果我设置了无效密码 – 显示带有文本“无效数据!”的textView,我需要通过Espresso进行测试,我写道: onView(withText(R.string.incorrect_data)).check(matches(isDisplayed())); 但这是错的,我有: android.support.test.espresso.NoMatchingViewException: No views in hierarchy found matching: with string from resource id: [incorrect_data] value: Invalid data! 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.widget.ListView{307b4f3a IFED.VC. ……ID -480,0-0,1022 #7f0a004c app:id/left_drawer} 如果我写: onView(withText(“Invalid […]

使用espressovalidationpopup菜单中的项目

我有一个popupmenu。 Uix截图提供。 现在,我想通过单击它们来validation列表中的某些项目并validation发生了什么。 但无论我做什么,我似乎都无法在popup菜单中选择项目。 菜单没有id,我认为不可能设置菜单的id。 我尝试过不同的东西,比如: onView(nthChildOf(anyOf(withId(android.R.id.title)), 1)).perform(click()); onView(withText(“5 sekunder”)).perform(click()); 但没有任何作用。 如何单击popup菜单中的项目? 在这里,您可以find带有popup菜单视图层的UIX文件。 编辑: 更明显的是,当您单击操作栏右角的点以展开子菜单时。 在我的情况下,子菜单总是由三个项目组成。 我最接近解决方案的是: onData(anything()).atPosition(2).perform(click()); 但大多数情况下它会打开第一个项目而不是第二个项目中的项目 No activities in stage RESUMED. Did you forget to launch the activity. (test.getActivity() or similar)? 日志可以在这里find。 在日志中,您可以看到它实际上点击了错误的项目,它点击“点击菜单:菜单1”。

针对多模块应用的Android测试覆盖率报告

我们有一个多模块应用程序。 我们有3个图书馆项目和1个发射项目。 module1(Libraray)module2(Libraray)依赖于module1 module3(Libraray)依赖于module1 启动(没有任何源代码,它只是一个所有lib的启动器)取决于module1和模块2。 在module1中,我们使用facade模式访问模块2和模块3类。 由于我们需要在Launch项目中编写所有测试用例,因为我们已经访问了启动项目中的所有类,因此我们可以访问所有类,并且由于NoClassDefException,测试用例不会失败。 当我们在Launch项目中编写测试用例时,我们就可以运行测试用例,并且我们将执行报告作为100%,并创建一个index.html文件,其中包含测试用例的所有详细信息,但是当我尝试生成测试用例时覆盖率报告然后它没有显示覆盖率报告的任何数据。 下面是我的gradle文件。 apply plugin: ‘com.android.application’ apply plugin: ‘jacoco’ android { compileSdkVersion 22 buildToolsVersion “23.0.2”` defaultConfig { applicationId “com.test.mobile” minSdkVersion 14 targetSdkVersion 17 multiDexEnabled true testApplicationId “com.test.mobile.test” testInstrumentationRunner ‘android.support.test.runner.AndroidJUnitRunner’ } repositories { mavenCentral() } buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-project.txt’ } debug{ testCoverageEnabled true } } […]

Android版本24.0.0和Espresso 2.0 gradle例外

我想在我的应用程序中使用Espresso 2.0,以测试UI元素。 然而,gradle不让它做。 它给了我这个信息 Error:Conflict with dependency ‘com.android.support:support-annotations’. Resolved versions for app (24.0.0) and test app (23.1.1) differ. See http://g.co/androidstudio/app-test-app-conflict for details. 这是我的gradle文件 apply plugin: ‘com.android.application’ android { compileSdkVersion 24 buildToolsVersion “24.0.0” defaultConfig { applicationId “theo.testing.espressotutorial” minSdkVersion 14 targetSdkVersion 24 versionCode 1 versionName “1.0” } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } […]

ViewPager中的Espresso Recylerview匹配多个视图

如何使用实现具有匹配多个视图的ID的RecylerView的片段来定位Viewpager? 我有一个MainActivity,它有一个Viewpager。 Viewpager有5个标签。 在这5个选项卡中,我使用RecylerViews在每个选项卡中加载图像。 RecylerView XML在不同的片段中重复使用,因此当使用Espresso访问它时,它会保持抱怨ID匹配多个视图。 我的RecylerView不加载任何文本,只加载图像,所以我甚至不能用withText(“Text here”) 。 我也不能对RecylerViews使用onData() 。 @RunWith(AndroidJUnit4.class) @LargeTest public class ExampleTest { @Rule public ActivityTestRule mActivityRule = new ActivityTestRule( MainActivity.class); Activity activity = mActivityRule.getActivity(); @Test public void ExampleMethod() { // perform a swipe onView(withId(R.id.viewpager)).perform(swipeLeft()); // try to click on one of the recycler view items. // this crashes: onView(withId(R.id.recycler_view)) .perform(RecyclerViewActions.actionOnItemAtPosition(2, […]

Android Studio无法解析Espresso 3.0.0

根据迄今为止的Android Espresso文档 : 添加Espresso依赖项 要将Espresso依赖项添加到项目中,请完成以下步骤: 打开应用程序的build.gradle文件。 这通常不是顶级build.gradle文件,而是app / build.gradle。 在依赖项中添加以下行: androidTestCompile ‘com.android.support.test.espresso:espresso-core:3.0.0’ androidTestCompile ‘com.android.support.test:runner:1.0.0’ 我创建了一个新项目,生成的app / gradle文件是这样的: apply plugin: ‘com.android.application’ android { compileSdkVersion 26 buildToolsVersion “26.0.0” defaultConfig { applicationId “com.app.test” minSdkVersion 24 targetSdkVersion 26 versionCode 1 versionName “1.0” testInstrumentationRunner “android.support.test.runner.AndroidJUnitRunner” } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } } } dependencies { […]

如何使用Espresso执行EditText的actionDone事件

标题中的问题。 我试过类似的东西: onView(withId(R.id.search_edit_text)) .perform(typeText(“some”), pressKey(KeyEvent.KEYCODE_ENTER)); 但它不起作用。 键盘仍然显示,并且未调用TextView.OnEditorActionListener 。 有任何想法吗?

如何使用Espresso测试获取Android项目的覆盖率

我曾经使用Robotium编写Android测试并使用Emma检索覆盖范围。 最近我改为使用Espresso测试,我很难find仪器测试的覆盖范围。 我只能检索使用Robolectric的unit testing的覆盖范围。 我目前正在使用gradle和Jacoco来做到这一点。 我find的最好的教程帮助我达到了这一点: https : //blog.gouline.net/2015/06/23/code-coverage-on-android-with-jacoco/ 是否可以检索使用Android检测的Espresso测试的覆盖范围?

是否可以在@BeforeClass注释方法中运行Android Espressounit testing?

我在使用检测的Androidunit testing中使用JUnit4 @BeforeClass注释时遇到了问题(我正在使用Espresso GUI测试库)。 一旦我使用@BeforeClass注释添加测试, Android Studio 1.5.1就不会运行任何测试,而只是打印“空测试套件”。 我没有使用测试套件。 我搜索了这个网站和网站,但找不到解决方案。 我认为在@BeforeClass方法中调用的代码实际上失败(TDD)可能是一个问题,但是当在正常测试用例中工作的代码放在@BeforeClass注释的方法中时,甚至会出现此错误。 谢谢。 更新:检查logcat输出后,正如一位评论者建议的那样,问题似乎是问题是没有启动任何活动 : 没有find任何活动。 您是否忘记通过调用getActivity()或startActivitySync或类似方法启动活动? 我该怎么做? 我无法使用ActivityTestRule字段,因为@BeforeClass注释的方法是静态的。 也许我只是以错误的方式使用@BeforeClass注释。 我的印象是你可以使用这个注释在测试类中的所有其他测试之前执行测试。 我基本上是在寻找TestNG注释”dependsOnMethods”的替代品。 也许我最好在测试类上使用@FixMethodOrder(MethodSorters.NAME_ASCENDING)注释,并将第一个测试用例重命名为aaa_my_testcase 。 有人可以对此发表评论吗? 谢谢。 重新提出问题的标题。 import android.support.test.rule.ActivityTestRule; import android.support.test.runner.AndroidJUnit4; import org.junit.BeforeClass; import org.junit.FixMethodOrder; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.MethodSorters; import static android.support.test.espresso.Espresso.onView; import static android.support.test.espresso.Espresso.pressBack; import static android.support.test.espresso.action.ViewActions.click; import static android.support.test.espresso.assertion.ViewAssertions.matches; import […]

使用Android Espresso进行测试时如何点击Action Bar项目?

我正在使用Android Espresso来测试我的活动。 我有多个操作栏项,其中大部分都隐藏在溢出中。 我试图运行此测试但错误说层次结构中没有视图(不同于不可见): @MediumTest public void testClickInsertItem() { Espresso.onView(ViewMatchers.withId(R.id.action_insert)).perform(ViewActions.click()); } 而错误: android.support.test.espresso.NoMatchingViewException: No views in hierarchy found matching: with id: blogr.vpm.fr.blogr:id/action_insert 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.widget.ListView{5283cfb0 VFED.VC. …….. 2,2-762,973 #7f07000b app:id/allitems} View Hierarchy: […]