在网上看了许多sonarQube的教程,首先这里向大家说明下两者的关系 sonarQube是一个(代码质量管理平台)开源平台,用于管理Java源代码的质量,通俗点说个人认为其实类似于一个服务器,就像Tomcat或者是JBOSS一样. 用服务器这个空架子肯定不能进行检测代码,而sonar-runner相当于是在这个平台下测试的一个扫描代码的工具,两者配合着使用才能进行通用的自动化测试(适合任意工程使用,maven工程和ant工程也同样适用)另有其他几种情况,以后在慢慢陈述,开始进入正题,即怎么样进行测试 .
在这里提出些建议:无论遇到什么问题,我们从这是什么,为什么,怎么用切入问题的话,看待事物的角度就会加深一层。
以测试环境 win7 32/64
准备条件:jdk环境,1.5以上版本,已有的数据库(oracle,mysql,sqlserver等)
测试 :
步骤1:安装sonarQube
首先解压sonarQube到任意目录(目录不要有中文)
这里我用的是5.1.1版本,该版本的链接地址为: http://www.sonarqube.org/downloads/,
这里官网已经更新到了5.1.2版本,
sonarQube是不需要进行环境变量配置的,只需要将其解压到指定目录即可,并且是免安装的,直接就可以使用,根目录下的bin目录进入后选择相应的操作系统和位数,进入后点击StartSonar.bat运行服务.这里运行前必须装好jdk,如果出现无法启动服务,命令行出现wrapper stopped的情况,那么重启电脑,一般就会解决,启动后在服务器上输入localhost:9000(sonarQube的默认端口号) 点击login,默认账户名和密码为 admin和admin.进入如果出现这个页面就说明sonarQube平台启动成功了.(这里小编已经把原有的英文替换成了中文,大家第一次进入时中文的哦),中文需要在官网下载插件进行安装或者是在线安装.
在线安装的方式是:
settings(配置)-update center(升级中心)-available plugins(可用插件)-localization(本地化)-选择Chinese Pack,点击就会出现install按钮,点击安装,重启sonarQube之后就是中文了.
进去后在配置sonarQube的配置,配置文件在sonarQube安装目录下的conf目录,进入后点击sonar.properties,进行编辑
这里填写四个值,分别是
sonar.jdbc.username=root //数据库用户连接名
sonar.jdbc.password=hehaoyu //数据库连接密码
sonar.jdbc.url=jdbc:mysql://localhost:3306/oa?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance//数据库链接
sonar.jdbc.driverClassName: com.mysql.jdbc.Driver //数据库驱动
注意:在sonarQube当中需要注意的是如果是Oracle数据库的话需要添加oracle jdbc的jar包,其它sonarQube是自带的,不用添加,Oracle的jar包在这个目录下
步骤2:安装sonar-runner
相同的方法解压sonar-runner到指定的任意目录,目录也不要有中文,同样也是免安装
链接地址:http://www.sonarqube.org/downloads/
这里,sonar-runner需要配置环境变量,声明一个SONAR_RUNNER_HOME的变量名,变量值就是sonar-runner的安装目录,在这里我的变量值就是 D:\sonar-runner-dist-2.4\sonar-runner-2.4,大家对应自己的目录修改,然后再Path变量名下加入值%SONAR_RUNNER_HOME%\bin(注意变量值要用分号 ; 隔开)
然后配置sonar-runner的配置文件
点击sonar-runner目录下的conf,编辑sonar-runner.properties
sonar.host.url=http://localhost:9000 sonar本地ip地址
sonar.jdbc.url=jdbc:mysql://localhost:3306/oa?useUnicode=true&characterEncoding=utf8 Mysql本地链接地址
sonar.jdbc.username=root 数据库连接账号
sonar.jdbc.password=hehaoyu 数据库连接密码
sonar.login=admin sonarQube平台登录账号
sonar.password=admin sonarQube平台登录密码
步骤3:在想测试的任意一个在工程根目录下新建立一个sonar-project.properties配置文件
里面写上:
# Required metadata
sonar.projectKey=Monkey
sonar.projectName=Monkey
sonar.projectVersion=15.07.28(建议版本号采用这种格式)
# Comma-separated paths to directories with sources (required)
sonar.sources=src
sonar.binaries=build (当时我写的是这样(build\classes\)结果报错了,如果只写上build目录则不会报错)
# Language
sonar.language=java
# Encoding of the source files
sonar.sourceEncoding=UTF-8
说明:sonar.projectKey=Monkey
projectKey与projectName和工程名字一样也行,projectKey和projectName不一样也可以,写成一样目的在于好区分
sources为源码目录
build为编译后的classes目录,sonar会自动遍历所有目录
language为分析的语言
sourceEncoding源码编码格式
步骤4:执行命令行,生成结果
OA5就是当前项目的根目录
先让命令行进入到指定项目的目录下,然后执行sonar-runner命令
(特别注意:由于命令这一形式建的多了,所以习惯性的把sonar-runner写成了 sonar -runner,中间多了一个空格,当时我一直没看出来是什么原因,sonar-runner一定是紧挨着呢)
成功则会显示
重新登录到sonarQube主页上,你会发现右边多了一个项目的分析结果
下面就是我们想要的分析结果