docker答疑
docker run --name some-nginx -v $PWD:/usr/share/nginx/html:ro -d -p 7777:80 registry.docker-cn.com/library/nginx
curl http://www.baidu.com > index.html
sonar系统搭建
docker run -d --name sonarqube \\
-p 9000:9000 -p 9092:9092 \\
registry.docker-cn.com/library/sonarqube
公共地址:http://jenkins.testing-studio.com:9000/
标准部署
docker run -d --name sonarqube \\
-p 9000:9000 -p 9092:9092 \\
-e SONARQUBE_JDBC_USERNAME=sonar \\
-e SONARQUBE_JDBC_PASSWORD=sonar \\
-e SONARQUBE_JDBC_URL=jdbc:postgresql://localhost/sonar \\
sonarqube
配置
默认用户名密码: admin/admin
token: 304fb4f12871f6b434575efebf525d89cfee6fef
gradle
plugins {
id "org.sonarqube" version "2.6"
}
./gradlew sonarqube \\
-Dsonar.host.url=http://jenkins.testing-studio.com:9000 \\
-Dsonar.login=304fb4f12871f6b434575efebf525d89cfee6fef
maven
mvn sonar:sonar \\
-Dsonar.host.url=http://jenkins.testing-studio.com:9000 \\
-Dsonar.login=304fb4f12871f6b434575efebf525d89cfee6fef
通用命令
sonar-scanner \\
-Dsonar.projectKey=testerhome \\
-Dsonar.sources=. \\
-Dsonar.host.url=http://jenkins.testing-studio.com:9000 \\
-Dsonar.login=304fb4f12871f6b434575efebf525d89cfee6fef
普通用户身份
token:7afe538ee954f29ee2d5dfef6baac4fc3ca87d66
示例项目
git clone https://github.com/SonarSource/sonar-scanning-examples.git
scanner
https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
配置PATH ~/.bash_profile
export SONAR_HOME=/Users/seveniruby/temp/sonar/sonar-scanner-3.2.0.1227
export PATH=$SONAR_HOME/bin/:$PATH
使用参数自定义
sonar-scanner -Dsonar.host.url=http://sonar.testing-studio.com:9000 -Dsonar.projectVersion=1.4
项目变更
- 关注新增代码带来的问题
Maven分析
https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Maven
<settings>
<pluginGroups>
<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
</pluginGroups>
<profiles>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- Optional URL to server. Default value is http://localhost:9000 -->
<sonar.host.url>
http://myserver:9000
</sonar.host.url>
</properties>
</profile>
</profiles>
</settings>
error 信息
Error Details
Validation of project failed:
o The project "org.sonarqube:app-java" is already defined in SonarQube but not as a module of project "org.testerhome:parent-maven-seveniruby". If you really want to stop directly analysing project "org.sonarqube:app-java", please first delete it from SonarQube and then relaunch the analysis of project "org.testerhome:parent-maven-seveniruby".
Android Gradle项目分析
https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Gradle
实战
通用测试数据 Generic Test Data
https://docs.sonarqube.org/display/SONAR/Generic+Test+Data
<properties>
<sonar.coverageReportPaths>${project.basedir}/coverage/1.xml</sonar.coverageReportPaths>
<sonar.testExecutionReportPaths>${project.basedir}/coverage/testcases.xml</sonar.testExecutionReportPaths>
</properties>
学习参考
作业1
使用默认的example去扫描,把项目的名字改成自己的名字demo project of seveniruby ,项目的key改成com.testerhome:SevenirubyDemo,使用scanner扫描并上传到公共服务器。
问题
- token sonar可以加强认证,只允许有token的人访问和使用sonar
作业2
完成sonar maven的分析,把项目的名字改成带有自己名字的标记,把项目的截图贴上来
作业3
构建自己的覆盖率数据并导入sonar
作业4
把自定义集成测试用例结果导入sonar
作业5
https://github.com/a-voyager/WeekToDo 分析一个真实项目,演练在真实项目中应用sonar