我如何 运行 单个 android 仪器测试用例?

How can I run a single android instrumentation test case?

不是单元测试,而是仪器测试。

我的应用有多种风格,所以我 运行:

./gradlew connectedClientDebugAndroidTest 到 运行 我的仪器测试(风格名称是 client)。

但我想 运行 一个名为 MyActivityTestCase.java 的特定仪器测试用例 class。这可能吗?如果是 运行 this

的命令是什么

使用 adb shell 的一般语法是:

adb shell am instrument -w <test_package_name>/<runner_class>

其中是您的测试应用程序的 Android 程序包名称,并且是您正在使用的 Android 测试运行器 class 的名称。

更多详细信息,请访问:http://developer.android.com/tools/testing/testing_otheride.html

使用 Gradle,您可以 运行 使用 test.single 系统 属性 进行单个测试。您可以使用 -D 选项从 command-line 设置它。例如

$ gradle -Dtest.single=MyActivityTestCase connectedClientDebugAndroidTest

有关详细信息,请参阅 http://mrhaki.blogspot.com/2013/05/gradle-goodness-running-single-test.html

所以我解决这个问题的方法是通过 flavor.

将我想要的单个 TestCase 放入特定文件夹中
  • 所以在这个例子中,我的风味被命名为client,所以我把我想要运行这个风味的单个测试放到app/src/androidTestClient/MyActivityTestCase.java
  • 然后运行./gradlew connectedClientDebugAndroidTest

如果您有针对特定构建风格的多个测试用例,则不是解决方案,但对我来说情况并非如此,所以它有效。

  • 我所有的其他测试都在我的风格中,名为 other,在文件夹中: app/src/androidTestOther/。所以对于 运行 其他仪器测试,我只是 运行 命令 ./gradlew connectedOtherDebugAndroidTest