Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 仅执行uiTests的渐变任务_Android_Gradle_Android Espresso - Fatal编程技术网

Android 仅执行uiTests的渐变任务

Android 仅执行uiTests的渐变任务,android,gradle,android-espresso,Android,Gradle,Android Espresso,我有一个安卓系统,带有默认的Gradle任务。在Android项目中,有一个androidTest包,包含integrationTests和uiTests。我还有两个Kotlin类,其中包含一组要调用的测试类 但是,./gradlew connectedAndroidTest同时运行integrationTests和uiTests,我想将其分开。我想出了多种解决方案: Android Studio的运行配置。但是,这没有签入VCS,因此我们无法访问Jenkins build服务器。 在Groov

我有一个安卓系统,带有默认的Gradle任务。在Android项目中,有一个androidTest包,包含integrationTests和uiTests。我还有两个Kotlin类,其中包含一组要调用的测试类

但是,./gradlew connectedAndroidTest同时运行integrationTests和uiTests,我想将其分开。我想出了多种解决方案:

Android Studio的运行配置。但是,这没有签入VCS,因此我们无法访问Jenkins build服务器。 在Groovy语言中添加Gradle任务,但是,不鼓励在新任务中调用另一个Gradle任务。
所以我正在寻找一种只测试integrationTests或uiTests的方法。我该怎么做呢?

我现在给你一个既便宜又愉快的回答。也许其他人可以提供一个更完整的

由于所有测试似乎都是同一源代码集的一部分,因此需要以其他方式区分它们。最合适的解决方案是您的测试库具有的任何分组机制,您可以这样做

或者,使用类似命名约定的方法来区分UI测试和集成测试

然后,您要做什么取决于您希望构建如何处理这些不同的类别。主要的选择包括:

从命令行使用-通过-tests选项-仅运行集成或UI测试。请注意,过滤仅通过类名起作用,因此必须使用命名约定方法

配置适当的测试任务-是否已连接AndroidTest?-因此,如果设置特定的项目属性,它将基于该项目属性的值运行集成测试或UI测试。这涉及在配置中使用if条件。这种方法同时适用于过滤和分组

添加两个额外的测试任务,一个执行集成测试,另一个执行UI测试。您将使connectedAndroidTest保持不变。这是我首选的方法,但需要比其他方法多一点代码


这个答案遗漏了很多关于如何实施这些解决方案的细节,但我担心现在填写这些细节对我来说太耗时了。正如我所说,希望有人能给出更完整的答案。

为什么不直接运行uiTests?对不起,我对Android版本不太熟悉。还有,为什么你说不鼓励在新任务中调用另一个Gradle任务?以什么方式?我们鼓励Gradle任务相互依赖。我不想运行整个androidTest套件,而是它的两部分之一。所以依靠他们是不对的。这就是问题所在,我正在寻找一种测试集成测试或uiTests的方法,它们彼此独立。所以uiTests和integrationTests不是渐变任务,对吗?它们只是两类测试?正确!它们是单独的测试,在测试模块androidTest中