Skip to content
This repository has been archived by the owner on Nov 8, 2022. It is now read-only.

Latest commit

 

History

History
43 lines (37 loc) · 2.23 KB

basics_and_configuration.md

File metadata and controls

43 lines (37 loc) · 2.23 KB

基本原理和配置

正如前面提到的,在**main** sourceSet下面的就是**androidTest** sourceSet,默认路径在src/androidTest/下。 从这个测试_sourceSet_中可以构建出一个使用Android测试框架,并且可以发布到设备上测试应用的测试apk。这里包含了单元测试,集成测试,和后续的UI自动测试。

测试程序manifest中的<instrumentation>结构是自动生成的,但是你可以创建src/androidTest/AndroidManifest.xml文件来增加其他的组件到测试的manifest中。

下面是配置测试程序的一些值,可以在<instrumentation>节点中增加:

  • testPackageName
  • testInstrumentationRunner
  • testHandleProfiling
  • testFunctionalTest

正如前面所看到的,这些配置在**defaultConfig **对象中配置:

android {
    defaultConfig {
        testPackageName "com.test.foo"
        testInstrumentationRunner "android.test.InstrumentationTestRunner"
        testHandleProfiling true
        testFunctionalTest true
    }
}

在测试应用程序manifest文件中,instrumentation节点中的testPackageName属性会自动使用测试应用的package名称,即使这个名称已经在**defaultConfig **或者是_Build Type_对象中自定义过。这也是manifest文件自动生成的一个原因。

另外,这个_sourceSet_也可以配置自己的依赖。 默认情况下,应用程序和它拥有的依赖会被添加到测试应用的classpath中,但是也可以通过下面的方式进行扩展

dependencies {
    androidTestCompile 'com.google.guava:guava:11.0.2'
}

测试应用通过**assembleTest** task来构建。它不依赖main中的**assemble** task,不过需要手动来设置它,使它可以自动运行。

目前只有一个_Build Type_被测试。默认情况是**debug** Build Type,但是可以通过下面的方式进行重新配置:

android {
    ...
    testBuildType "staging"
}