【发布时间】:2014-11-01 23:34:28
【问题描述】:
我有一个 Android 应用程序,我们有一个使用 ant 构建的项目,然后将 lint 分析结果上传到 Sonar 服务器。我有另一个包含所有 JUnit 测试的测试项目。我想将 JUnit 测试结果和代码覆盖率上传到 Sonar 到 android 应用程序的同一个 Sonar 项目中。如何在 ant 构建脚本中执行此操作,仅上传 JUnit 测试结果和代码覆盖率?
<!-- Sample local host configuration -->
<property name="sonar.host.url" value="http://localhost:9000" />
<property name="sonar.jdbc.url" value="jdbc:h2:tcp://localhost:9092/sonar" />
<property name="sonar.jdbc.username" value="x" />
<property name="sonar.jdbc.password" value="x" />
<!-- Define the SonarQube project properties -->
<property name="sonar.projectKey" value="android-app" />
<property name="sonar.projectName" value="AndroidApp" />
<property name="sonar.language" value="java" />
<property name="sonar.modules" value="MyAndroidApp" />
<property name="sonar.profile" value="Android Lint" />
<property name="sonar.projectBaseDir" value="../MyAndroidApp" />
<property name="sonar.sources" value="src" />
<property name="sonar.binaries" value="bin/classes" />
<property name="sonar.libraries" value="libs/*.jar, ../google-play-services_lib/libs/*.jar, ${sdk.dir}/platforms/${target}/android.jar" />
<property name="junit.tests.results" value="../MyAndroidAppJavaUnitTests/junit-output" />
<!-- Sets the sonar project version at runtime-->
<target name="sonar-set-project-version">
<xpath input="${manifest.abs.file}" expression="/manifest/@android:versionName" output="sonar.projectVersion"/>
<echo level="info">Setting sonar project version to: ${sonar.projectVersion}</echo>
</target>
<!-- Define the SonarQube target -->
<target name="sonar" depends="sonar-set-project-version">
<taskdef uri="antlib:org.sonar.ant" resource="org/sonar/ant/antlib.xml">
<!-- Update the following line, or put the "sonar-ant-task-*.jar" file in your "$HOME/.ant/lib" folder -->
<classpath path="sonar-ant-task-*.jar" />
</taskdef>
<!-- Execute the SonarQube analysis -->
<sonar:sonar />
</target>
【问题讨论】:
-
你的 Ant 脚本有一些错误,所以这不能工作。例如,“sonar.modules”设置为“MyAndroidApp”,但是您配置了一些奇怪的参数,例如“CarsLibrary.sonar.*”=>“CarsLibrary”与“sonar.modules”中定义的任何模块都不匹配
-
对不起,我的错字,在我复制粘贴时正在尝试一些东西......
标签: android ant junit code-coverage sonarqube