Questions tagged «android-espresso»

Espresso是用于编写Android UI测试的库。也称为Google的Android测试工具

5
Kotlin和新的ActivityTestRule:@Rule必须是公共的
我正在尝试对Kotlin中的android应用进行UI测试。由于新系统使用ActivityTestRule,所以我无法使其工作:它可以正确编译,并且在运行时得到: java.lang.Exception: The @Rule 'mActivityRule' must be public. at org.junit.internal.runners.rules.RuleFieldValidator.addError(RuleFieldValidator.java:90) at org.junit.internal.runners.rules.RuleFieldValidator.validatePublic(RuleFieldValidator.java:67) at org.junit.internal.runners.rules.RuleFieldValidator.validateField(RuleFieldValidator.java:55) at org.junit.internal.runners.rules.RuleFieldValidator.validate(RuleFieldValidator.java:50) at org.junit.runners.BlockJUnit4ClassRunner.validateFields(BlockJUnit4ClassRunner.java:170) at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:103) at org.junit.runners.ParentRunner.validate(ParentRunner.java:344) at org.junit.runners.ParentRunner.<init>(ParentRunner.java:74) at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:55) at android.support.test.internal.runner.junit4.AndroidJUnit4ClassRunner.<init>(AndroidJUnit4ClassRunner.java:38) at android.support.test.runner.AndroidJUnit4.<init>(AndroidJUnit4.java:36) at java.lang.reflect.Constructor.constructNative(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:417) at android.support.test.internal.runner.junit4.AndroidAnnotatedBuilder.buildAndroidRunner(AndroidAnnotatedBuilder.java:57) at android.support.test.internal.runner.junit4.AndroidAnnotatedBuilder.runnerForClass(AndroidAnnotatedBuilder.java:45) at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57) at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:29) at org.junit.runner.Computer.getRunner(Computer.java:38) at org.junit.runner.Computer$1.runnerForClass(Computer.java:29) at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57) at …

9
与依赖项“ com.android.support:support-annotations”冲突。应用(23.1.0)和测试应用(23.0.1)的已解决版本不同
构建时出现以下错误: Conflict with dependency 'com.android.support:support-annotations'. Resolved versions for app (23.1.0) and test app (23.0.1) differ. 这些是我的gradle依赖 dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.android.support:support-v4:23.1.0' compile 'com.android.support:appcompat-v7:23.1.0' compile 'com.android.support:design:23.1.0' compile 'com.android.support:cardview-v7:23.1.0' compile 'com.android.support:recyclerview-v7:23.1.0' compile 'com.squareup.retrofit:retrofit:1.9.0' compile 'com.squareup.okhttp:okhttp:2.4.0' compile 'com.squareup.picasso:picasso:2.5.2' compile 'com.jakewharton:butterknife:7.0.1' compile 'com.squareup:otto:1.3.8' compile 'com.snappydb:snappydb-lib:0.5.2' compile 'com.esotericsoftware.kryo:kryo:2.24.0' compile 'com.google.dagger:dagger:2.0.1' apt …

2
Google Espresso或Robotium [已关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 6年前关闭。 改善这个问题 我必须使用自动UI测试工具,而在使用Robotium和Google Espresso之间却感到困惑。 两者之间的主要区别是什么?一个功能中是否存在其他功能?

13
意式浓缩咖啡:Thread.sleep();
Espresso声称不需要Thread.sleep();,但是除非包含它,否则我的代码将不起作用。我正在连接到IP。连接时,将显示一个进度对话框。我需要sleep等待对话框关闭。这是我在其中使用的测试代码段: IP.enterIP(); // fills out an IP dialog (this is done with espresso) //progress dialog is now shown Thread.sleep(1500); onView(withId(R.id.button).perform(click()); 我曾尝试这个代码用和不用的Thread.sleep();,但它说,R.id.Button不存在。我可以使它正常工作的唯一方法是睡觉。 另外,我尝试用Thread.sleep();类似的东西代替,getInstrumentation().waitForIdleSync();但仍然没有运气。 这是唯一的方法吗?还是我错过了什么? 提前致谢。

9
使用Espresso单击RecyclerView项目内的视图
如何使用Espresso单击RecyclerView项目内的特定视图?我知道我可以使用以下方法在位置0处单击该项目: onView(withId(R.id.recyclerView)) .perform(RecyclerViewActions.actionOnItemAtPosition(0, click())); 但是我需要单击该项目内的特定视图,而不是该项目本身。 提前致谢。 -编辑- 更准确地说:我有一个RecyclerView(R.id.recycler_view),哪些项目是CardView(R.id.card_view)。在每个CardView中,我都有四个按钮(除其他外),并且我想单击特定的按钮(R.id.bt_deliver)。 我想使用Espresso 2.0的新功能,但是我不确定这是可能的。 如果不可能的话,我想使用这样的东西(使用Thomas Keller代码): onRecyclerItemView(R.id.card_view, ???, withId(R.id.bt_deliver)).perform(click()); 但我不知道该问些什么。


6
检查是否使用Espresso显示对话框
我正在尝试使用新的android-test-kit(Espresso)编写一些测试。但是我找不到有关如何检查是否显示对话框以及对其执行某些操作的任何信息(例如单击肯定和否定按钮等)。请注意,对话框也可能由显示WebView,而不是由其自身的应用程序显示。 任何帮助,将不胜感激。我只需要一个链接或一些基本示例代码即可: 检查是否出现对话框 单击对话框按钮 与对话框的内部视图进行交互(如果是自定义视图) 瓶坯在对话框外单击,并检查其是否显示(例如,是否setCancelable(false)在对话框构建器中被调用,我们要检查) 谢谢指教!

5
match(not(isDisplayed()))失败,出现NoMatchingViewException
我正在尝试测试UI视图的缺失。视图选择器如下: public static ViewInteraction onMyTestUi() { return onView(withId(R.id.myTestId)); } 选择器可以很好地检查视图是否显示,但是在检查视图是否未显示时会出错。我正在使用如下: onMyTestUi().check(matches(not(isDisplayed()))); 但是我收到以下错误: com.google.android.apps.common.testing.ui.espresso.NoMatchingViewException:找不到层次结构中与View匹配的视图:id:is如果目标视图不属于视图层次结构,则可能需要使用Espresso.onData从以下AdapterViews之一加载它:android.widget.ListView {...} 这很奇怪。我正在检查缺少UI,并且期望不会找到此视图。那为什么Espresso会抛出错误?请在这里提出可能出了什么问题。 谢谢,惊讶!


8
为什么不能将AndroidJUnit4和ActivityTestRule导入单元测试类?
我在导入某些Android UI测试框架类时遇到了麻烦-我只是不知道出了什么问题! 这是我的课: @RunWith(AndroidJUnit4.class) @LargeTest public class ExampleUnitTest { @Rule public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule(MainActivity.class); @Test public void listGoesOverTheFold() { onView(withText("Hello world!")).check(matches(isDisplayed())); } } 但是由于某种原因,我得到了错误“找不到符号ActivityTestRule”和“找不到符号AndroidJUnit4”。我尝试导入它们,但找不到它们。 build.gradle中的依赖项设置为: compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.4.0' androidTestCompile 'com.android.support:support-annotations:23.4.0' androidTestCompile 'com.android.support.test:runner:0.4' androidTestCompile 'com.android.support.test:rules:0.4' androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1' androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2' 所以我想我已经完成了所有依赖项设置-我已经尝试了很多事情,但是没有运气。 谁有想法?


7
Android测试:UIAutomator与Espresso
我正在寻求适用于Android的UI自动化测试框架,我偶然发现了UI Automator和Espresso,这是我感到困惑的部分- 两者均由Google维护 两者都用于功能UI测试 两者都是Android框架 所以我的问题/疑问是- UI Automator和之间的主要区别是Espresso什么? 是否需要修改源代码以集成任何这些框架? 一个框架比另一个框架具有任何优势吗?如果是,那么哪个框架最适合Android应用程序的UI自动化?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.