我有这个Android,带有默认的Gradle-tasks。在Android项目中,有一个androidTest
包,其中包含integrationTests
和uiTests
。我还有两个Kotlin类,其中包含一组要调用的测试类。
但是,./gradlew connectedAndroidTest
同时运行integrationTests
和uiTests
,我想将其分开。我想出了多种解决方案:
因此,我正在寻找一种仅测试
integrationTests
或uiTests
的方法。我怎样才能做到这一点?
最佳答案
我现在要给你一个廉价而愉快的答案。也许其他人将能够提供更全面的服务。
由于所有测试似乎都属于同一源集,因此您需要以其他方式对其进行区分。最合适的解决方案是测试库具有用于分组的任何机制,然后可以使用utilise from Gradle。
或者,使用类似命名约定的名称来区分UI测试和集成测试。
然后,您要做什么取决于您希望构建如何处理这些不同的类别。主要选项包括:
--tests
选项-仅运行集成或UI测试。请注意,过滤只能通过类名进行,因此您必须使用命名约定方法。 Test
任务-那个connectedAndroidTest
吗? —因此,如果您设置特定的项目属性,它将基于该项目属性的值运行集成测试或UI测试。这涉及在配置中使用if
条件。此方法适用于过滤和分组。 Test
任务,一个任务执行集成测试,另一个任务执行UI测试。您将保持connectedAndroidTest
不变。这是我的首选方法,但是比其他方法需要更多的代码。 这个答案缺少有关如何实现这些解决方案的很多细节,但是现在恐怕填写这些细节对于我来说太耗时了。就像我说的那样,希望有人会给出更完整的答案。
关于android - Gradle任务仅执行uiTests,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50016405/