之前在项目中引入的单元测试使用的是JUnit,可以在构建前进行测试,这里在介绍一下使用Instrumentation 进行单元测试。使用Instrumentation进行测试,比之前多一些步骤,需要把打包apk上传到仓库,然后运行虚拟机,把apk安装到虚拟机中。
1. Jenkins“外掛程式管理”中,安裝Android Emulator Plugin,然后在“設定系統”->“Android SDK root”中填入SDK的位置,然后新建一个环境变量ANDROID_SDK_HOME,加入android虚拟机的存放位置,一般应该是C:\Documents and Settings\<user>。
2. 被测项目的Jenkins设定中,“Goal 及選項” 加入install,用来把打包的apk上传到仓库中。
3. 建立另一个Jenkins专案,用来构建测试项目。
4. 被测项目的Jenkins设定中增加“建置後動作”,“建置其他專案”,填写测试项目的名称。
5. 测试项目的pom.xml中加入被测项目的依赖。
<dependency> <!-- the target apk, which we will test. will automatically be deployed to device in pre-integration-test phase. --> <groupId>com.example.demo</groupId> <artifactId>maven-demo</artifactId> <version>1.0.0</version> <type>apk</type> </dependency> <dependency> <!-- optional: compile time dependency, in this case so that we can read from the R.java for example. --> <groupId>com.example.demo</groupId> <artifactId>maven-demo</artifactId> <version>1.0.0</version> <scope>provided</scope> <type>jar</type> </dependency>
6. 测试项目的Jenkins设定中,“建置環境”中勾选Run an Android emulator during build 并按情况填写,“Goal 及選項” 加入package android:deploy,用来把测试的apk安装到虚拟机上。
7. 构建被测项目,被测项目在完成构建后会自动触发测试项目的构建。