Gradle 只执行 uiTests 的任务
Gradle task to only execute uiTests
我有这个 Android,默认的 Gradle 任务。在 Android-project 中,有一个 androidTest
包,包含 integrationTests
和 uiTests
。我还有两个 Kotlin 类,其中包含一套要调用的测试 类。
但是,./gradlew connectedAndroidTest
运行既是integrationTests
又是uiTests
,我想把这个分开。我想出了多种解决方案:
- Android Studio 的 运行 配置。然而,这并没有签入 VCS,因此我们无法访问我们的 Jenkins 构建服务器。
- 使用 Groovy 语言添加 Gradle 任务,但是不鼓励在新任务中调用另一个 gradle 任务。
所以我正在寻找一种方法来只测试 integrationTests
或 uiTests
。我该怎么做?
我现在要给你一个廉价而愉快的答案。也许其他人能够提供更完整的。
由于所有测试似乎都是同一个源集的一部分,您需要以其他方式区分它们。最合适的解决方案是您的测试库具有用于 分组 的任何机制,然后您可以 utilise from Gradle.
或者,使用命名约定之类的东西来区分 UI 测试和集成测试。
接下来您要做什么取决于您希望构建如何处理这些不同的类别。主要选项包括:
从命令行使用 test filtering - 通过 --tests
选项 - 运行 只是集成或 UI 测试。请注意,过滤只能通过 class 名称进行,因此您必须使用命名约定方法。
配置适当的 Test
任务——是 connectedAndroidTest
吗? — 因此,如果您设置一个特定的项目 属性,它将 运行 集成测试或 UI 测试基于该项目的价值 属性。这涉及在配置中使用 if
条件。这种方法适用于过滤和分组。
添加两个额外的 Test
任务,一个执行集成测试,一个执行 UI 测试。你会保持 connectedAndroidTest
不变。这是我的首选方法,但比其他方法需要更多代码。
这个答案缺少很多关于如何实施这些解决方案的细节,但恐怕现在填写这些细节对我来说太费时了。正如我所说,希望有人能给出更完整的答案。
我有这个 Android,默认的 Gradle 任务。在 Android-project 中,有一个 androidTest
包,包含 integrationTests
和 uiTests
。我还有两个 Kotlin 类,其中包含一套要调用的测试 类。
但是,./gradlew connectedAndroidTest
运行既是integrationTests
又是uiTests
,我想把这个分开。我想出了多种解决方案:
- Android Studio 的 运行 配置。然而,这并没有签入 VCS,因此我们无法访问我们的 Jenkins 构建服务器。
- 使用 Groovy 语言添加 Gradle 任务,但是不鼓励在新任务中调用另一个 gradle 任务。
所以我正在寻找一种方法来只测试 integrationTests
或 uiTests
。我该怎么做?
我现在要给你一个廉价而愉快的答案。也许其他人能够提供更完整的。
由于所有测试似乎都是同一个源集的一部分,您需要以其他方式区分它们。最合适的解决方案是您的测试库具有用于 分组 的任何机制,然后您可以 utilise from Gradle.
或者,使用命名约定之类的东西来区分 UI 测试和集成测试。
接下来您要做什么取决于您希望构建如何处理这些不同的类别。主要选项包括:
从命令行使用 test filtering - 通过
--tests
选项 - 运行 只是集成或 UI 测试。请注意,过滤只能通过 class 名称进行,因此您必须使用命名约定方法。配置适当的
Test
任务——是connectedAndroidTest
吗? — 因此,如果您设置一个特定的项目 属性,它将 运行 集成测试或 UI 测试基于该项目的价值 属性。这涉及在配置中使用if
条件。这种方法适用于过滤和分组。添加两个额外的
Test
任务,一个执行集成测试,一个执行 UI 测试。你会保持connectedAndroidTest
不变。这是我的首选方法,但比其他方法需要更多代码。
这个答案缺少很多关于如何实施这些解决方案的细节,但恐怕现在填写这些细节对我来说太费时了。正如我所说,希望有人能给出更完整的答案。