如何 运行 使用 connectedAndroidTest 命令仅测试套件

How to run only a test suite with the connectedAndroidTest command

我遇到超时问题 运行在 circle ci 中进行我的 UI 测试,因为命令 connectedAndroidTest 花费超过 10 分钟到 运行.

所以我试图将它们分成测试套件,一次 运行 每个套件。

我在此处找到了如何为我的 android 测试创建套件:https://developer.android.com/reference/junit/framework/TestSuite.html

但我找不到如何使用 connectedAndroidTest 命令 运行 它们。

我还没有找到任何执行 TestSuite 的方法,但我找到了两个其他选项来解决 circle ci 测试的超时问题:

  • 运行 包测试:

./gradlew app:connectedAndroidTest -Pandroid.testInstrumentationRunnerArguments.package=<package>

  • 运行 按类型测试:

./gradlew connectedAndroidTest -Pandroid.testInstrumentationRunnerArguments.size=<small|medium|large>

您需要将 @SmallTest、@MediumTest、@LargeTest 添加到您的测试中 类 或将它们分成组的方法,以避免超时。

我发现的另一个选项是更改命令的超时时间:

- ./gradlew app:connectedCheck -PdisablePreDex:
    timeout: 1800

添加到@jonathanrz 回答:

  • 运行 测试 class:

./gradlew app:connectedAndroidTest -Pandroid.testInstrumentationRunnerArguments.class= com.example.app.MyTestClass

  • 运行 测试方法:

./gradlew app:connectedAndroidTest -Pandroid.testInstrumentationRunnerArguments.class= com.example.app.MyTestClass#myTestMethod

顺便说一句:您可以通过添加以下内容为您的测试添加更多参数:

-Pandroid.testInstrumentationRunnerArguments.foo="My\ Extra\ Info

请注意,如果存在空格,您必须如何转义此处的空格