首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >意式浓缩咖啡的自动化和手工测试同时进行

意式浓缩咖啡的自动化和手工测试同时进行
EN

Stack Overflow用户
提问于 2015-12-02 20:05:16
回答 2查看 853关注 0票数 2

我正在为一个通过NFC标签与仪器交互的android应用程序编写Espresso自动化测试。在NFC阅读和与仪器的手动交互过程中,我想暂停浓咖啡测试3-4分钟。在浓咖啡测试期间,我们能同时进行自动化和手动交互吗?空闲资源是否是一个选项,因为在暂停期间会发生UI更改?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-08 07:30:35

好吧,我不知道同时进行自动化测试和手动测试的想法,理论上自动化测试应该加快使用app检查用户交互的过程,并简化手工测试人员的某些工作。

在运行自动化Espresso测试的过程中进行手动测试确实是个坏主意。中断测试或更改app状态非常容易,这会导致测试失败。

在上一次谷歌测试自动化大会上,2015年宣布了咖啡师 - Espresso测试记录器。

在Espresso中,我看到了以您的方式进行测试的三种可能方法:

  1. 创建自定义空闲资源类并注册它。
  2. 使用像Thread.sleep(240000);这样的Java空闲方法
  3. 编写您想要的所有自动化测试,运行它们。最后进行选定的手动测试。

编辑:根据你的问题,最好的方法是使用Thead.sleep(milliseconds)。它将停止测试所需的时间,如3或4分钟。

但是Espresso测试按随机顺序运行,因此请重新配置现有的配置,如下所示:

build.gradle中,在android -> defaultConfig中声明您的testInstrumentationRunner,当然还有Espresso,所以您的Gradle文件应该包含:

代码语言:javascript
复制
android {
 defaultConfig {
   testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
           }
        }
    
 dependencies {  
   androidTestCompile 'com.android.support:support-annotations:23.+'
   androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
   androidTestCompile 'com.android.support.test:runner:0.4.1'
   androidTestCompile 'com.android.support.test.espresso:espresso-intents:2.2.1'
    /**
     * AccessibilityChecks
     * CountingIdlingResource
     * DrawerActions
     * DrawerMatchers
     * PickerActions (Time and Date picker)
     * RecyclerViewActions
     */
    } 

注意:这里最重要的是声明AndroidJUnitRunner为您的Espresso测试运行程序,因为我们将在测试配置中使用JUnit4

最后,像这样修改测试类代码:

代码语言:javascript
复制
 @RunWith(AndroidJUnit4.class)
 @FixMethodOrder(MethodSorters.NAME_ASCENDING) 
 public class EspressoExampleTest {

 @Rule
 public ActivityTestRule<MainActivity> mRule = new ActivityTestRule<>(MainActivity.class);

 @Test
 public void checkIfAppNameIsDisplayed() {
     onView(withText(R.string.app_name)).check(matches(isDisplayed()));
 }

使用这里,@FixMethodOrder(MethodSorters.NAME_ASCENDING)会给出您的测试类将一步一步地执行,因此假设在您的第8个测试类之后,您将

代码语言:javascript
复制
 @Test
 public void waitUntilManualTestWoulBeDone() {
     Thread.sleep(1440000); //sleeps 4 minutes
 }

应该管用的。

票数 2
EN

Stack Overflow用户

发布于 2016-04-20 07:41:49

我没有仔细考虑,但是创建自己的ViewAction可以停止测试,如下所示:

onView(withText(R.string.some_text)).perform(wait(3 *60);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34052002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档