我们将Robotium与一起android.test.InstrumentationTestRunner用于测试。虽然如此,我们想用Robotium代替Espresso,但是我们仍然有一些疑问,因为我们有一台装有Jenkins的CI机器。
android.test.InstrumentationTestRunner
Espresso使用的是android.support.test.runner.AndroidJUnitRunnerRobotium ,而Robotium使用的是第一个,我们希望能够同时使用两个测试框架。可能吗?我们如何在build.gradle文件中指定呢?我们如何配置我们的詹金斯机器,以针对不同的测试框架执行不同的任务?
android.support.test.runner.AndroidJUnitRunner
build.gradle
我知道Espresso可以扩展ActivityInstrumentationTestCase2,因为我们的Robotium测试类还使用了从扩展的测试运行程序ActivityInstrumentationTestCase2,但是我们仍然需要解决仪器测试运行程序的问题。
ActivityInstrumentationTestCase2
从Android开发人员文档中,AndroidJUnitRunner替换较旧的版本InstrumentationTestRunner并启用JUnit 4测试。
AndroidJUnitRunner
InstrumentationTestRunner
该AndroidJUnitRunner班是一个JUnit测试运行器,让您运行JUnit 3或JUnit 4Android设备上的风格测试类,包括使用那些Espresso和UI Automator测试框架。 测试运行程序负责将您的测试包和被测应用程序加载到设备,运行测试并报告测试结果。该类代替了InstrumentationTestRunner仅支持JUnit 3测试的类。
该AndroidJUnitRunner班是一个JUnit测试运行器,让您运行JUnit 3或JUnit 4Android设备上的风格测试类,包括使用那些Espresso和UI Automator测试框架。
JUnit
JUnit 3
JUnit 4
Espresso
UI Automator
测试运行程序负责将您的测试包和被测应用程序加载到设备,运行测试并报告测试结果。该类代替了InstrumentationTestRunner仅支持JUnit 3测试的类。
https://developer.android.com/training/testing/junit- runner.html
我没有找到能够运行仪器测试(例如使用Robotium)的许多示例。我一直在寻找自己的目的。
该文档说明了如何在build.gradle文件https://developer.android.com/training/testing/unit- testing/instrumented-unit- tests中替换测试运行器