Test Runner 是调用流的执行单元。这是实际运行测试的地方。
接口
测试运行器是通过IRemoteTest 接口定义的,该接口提供了一个简单的run
方法来实现,当测试运行时将调用该方法。
这允许对测试运行进行最简单的定义。但在实践中,测试编写者将需要更多信息来正确编写他们的测试,通常是构建和设备信息。这是以下接口派上用场的地方。
基本的
这两个接口是当今使用最广泛的,因为它们代表了大多数测试的基本需求。
- IBuildReceiver允许测试获取在构建提供程序步骤创建的
IBuildInfo
对象,其中包含与测试设置相关的所有信息和工件。 - IDeviceTest允许 TF 接收代表被测设备的
ITestDevice
对象并提供与之交互的 API。
先进的
还有其他接口允许测试工具和测试运行器之间进行更复杂的交互:
- ITestFilterReceiver ,它允许测试接收一组过滤器,仅用于运行某些测试。这在运行测试的子集时很有用。
- ITestCollector ,它允许测试运行者只空运行测试而不是实际执行它们。这对于收集所有测试用例的列表很有用。
现有的测试运行器
已经存在多种测试运行器,其中一些用于主要测试类型:
- AndroidJUnitTest / InstrumentationTest (与设备端的 AJUR 关联)
- 带有googletest 库的GTest (设备和主机端)
- 主机驱动测试(在主机上执行并从那里调用设备的 Java 测试)
- 纯 Java 单元测试(我们的 runner 两者都做)
- Python 测试
- 使用基准库进行 Google 基准测试
除了上述之外,还有大量的自定义测试运行器;它们用于某些功能测试的特殊目的,例如引导测试。
编写新的测试运行器
有关编写新测试运行程序的更多指导,请参阅编写测试部分。