sonarQube自動化測試之sonar-runner進行測試
在網上看了許多sonarQube的教程,首先這裡向大家說明下兩者的關係
sonarQube是一個(程式碼質量管理平臺)開源平臺,用於管理Java原始碼的質量,通俗點說個人認為其實類似於一個伺服器,就像Tomcat或者是JBOSS一樣. 用伺服器這個空架子肯定不能進行檢測程式碼,而sonar-runner相當於是在這個平臺下測試的一個掃描程式碼的工具,兩者配合著使用才能進行通用的自動化測試(適合任意工程使用,maven工程和ant工程也同樣適用)另有其他幾種情況,以後在慢慢陳述,開始進入正題,即怎麼樣進行測試
.
在這裡提出些建議:無論遇到什麼問題,我們從這是什麼,為什麼,怎麼用切入問題的話,看待事物的角度就會加深一層。
以測試環境 win7 32/64
準備條件:jdk環境,1.5以上版本,已有的資料庫(oracle,mysql,sqlserver等)
測試 :
步驟1:安裝sonarQube
首先解壓sonarQube到任意目錄(目錄不要有中文)
eg:
這裡我用的是5.1.1版本,該版本的連結地址為: http://www.sonarqube.org/downloads/,
這裡官網已經更新到了5.1.2版本,
sonarQube是不需要進行環境變數配置的,只需要將其解壓到指定目錄即可,並且是免安裝的,直接就可以使用,根目錄下的bin目錄進入後選擇相應的作業系統和位數,進入後點擊StartSonar.bat執行服務.這裡執行前必須裝好jdk,如果出現無法啟動服務,命令列出現wrapper stopped的情況,那麼重啟電腦,一般就會解決
線上安裝的方式是:
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主頁上,你會發現右邊多了一個專案的分析結果
下面就是我們想要的分析結果