實現效果
001.png
點擊左邊圖標,可以進入道測試.
總量頁面,并且每次提交代碼,都可以自動測試并在圖標上反饋結果。
使用coverity來做免費的在線代碼測試
- 打開coverity網站,用github賬戶登陸。
-
在dashboard這個頁面里,把需要實現自動測試的項目加進來。
image01.png -
之后進入剛添加的項目頁面。注意紅色的地方。
image02.png
右邊的紅框表示配置的進度。現在Registered project是打勾的。
-
接下了我們配置Submitted first build。直接點擊進入下面頁面:
image03.png
上面紅框是上傳build的模式。其實就兩種模式,upload build和submit url都需要下載它的測試包,然后手工執行再上傳。Travis CI就是實現自動測試代碼的模式。
手工上傳的我在linux下用了下面7行命令:
# 先下載安裝包:
wget https://scan.coverity.com/download/linux64 --post-data "token=rCfUzcswcqW4pUxCBdABqA&project=toniz%2Fasync-or-coroutine-fastcgi" -O coverity_tool.tgz
# 解壓
tar -zxvf coverity_tool.tgz
# 設置系統路徑
export PATH=$PATH:/root/cov-analysis-linux64-2017.07/bin
# 切換到項目目錄下
cd ../service async-or-coroutine-fastcgi
# 執行測試程序收集數據。
cov-build --dir cov-int scons
# 用項目名命名來壓縮
tar czvf async-or-coroutine-fastcgi.tgz cov-int
# 上傳到coverity
curl --form token=rCfUzcswcqW4pUxCBdABqA --form email=toniz7960@gmail.com --form file=@async-or-coroutine-fastcgi.tgz --form version="Version" --form description="Description" https://scan.coverity.com/builds?project=toniz%2Fasync-or-coroutine-fastcgi
做完這個。等待一下就可以看到測試結果了,不過只能看到總覽的,測試詳情要等兩天。
image04.png
可以按上面設置把結果圖例添加到我們項目中。
[圖片上傳失敗...(image-cc8ccc-1515464260420)]
嗯 項目里可以看到測試結果了。接下來看看如何實現自動測試。
使用travis-ci.org這個網站來實現Git更新檢測->自動測試->上傳測試報告到coverity。
- 用github賬號登陸travis-ci.org.
注意travis-ci.org是免費提供給開源項目使用的。travis-ci.com是收費使用的。
- 用github賬號登陸travis-ci.org.
-
travis-ci會自動把你github上面的項目關聯過來。選擇要自動測試的項目打開開關。
image05.png -
接下來是下一個.travis.yml. 先打開coverity,來到下面這個頁面,把example拷貝出來。
image06.png - 里面的環境變量和密鑰不變,其它可參考我下面的.travis.yml修改。
language: cpp
os:
- linux
compiler:
- gcc
branches:
only:
- master
env:
global:
- secure: "C7smbw+mWbRYws6rKUoeGZRbK4feg+Xnfp0Owk8tLepMIGCUw/SLxPhe0rXNl1c09ABQaX9pCtXxFtz/nnfCuO55Eqdi71Il/+X6PYwMgaBOnMVWdywRgThUp7Hu2i/rK0b4ZYEQURj0HdOfIOjWY4L7v/CrnOPprwLjvrmg8CZOku2ytVmxULIrWYumbfV2KgJZs/hQaPlhcUR/eSYNVl0tz/aPEXGfUfFekuxmLWDP/z3vrIDW/hPmmWEelJVx3RTKDB+BXuNfaVfgzvoU4IV/mIG9l3FGybnQVviGZv03rJJUpaWTIsf+/CqUd6qDaesnCoiRcbkO8PwOT30GzMiPu7usu1veWhhVp9yb32nzfqITeQvzPqla74Hzjuzmyhqbi+Y1kD9rJkfS/300Z1qgb5BFjU0eblW6REuWNw4AvqgcbbqWAS5IBLVLTw+lBZNjWMl5pPlRBh3cNWKi7y1Ak2PeLgqTy03v9nlieo18PCbBFFRk2qpEiJ2bud7ptl2L/gBURvTRA6jNq5wAkCdr8xNnmeaKtbJyGuB5F9cRaz7LBRbZ36pgdO1it1Rq4kg57ooJB9cNn/ODKzZ51KPIPxkU4ODI8bvhGGZwmMKzv1kFHiAAelKaNb5TqoD4fmLp/4ukRAJo3m9QTKsWyw4NYPuGgFkT5tRucNhBSAs="
before_install:
- echo -n | openssl s_client -connect scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca-
- sudo apt-get update -y
- sudo apt-get install libboost-all-dev -y
- sudo apt-get install aptitude -y
- aptitude search boost -y
- sudo apt-get install scons -y
script: if [ "${COVERITY_SCAN_BRANCH}" != 1 ]; then make ; fi
addons:
coverity_scan:
project:
name: "toniz/async-or-coroutine-fastcgi"
description: "Build submitted via Travis CI"
notification_email: toniz7960@gmail.com
build_command_prepend: "scons -c"
build_command: "scons"
branch_pattern: master
- before_install 第一行不變,全部都是shell指令。要安裝什么模塊都在這里加就行了。
- script 這句不太懂,貌似沒啥用,但不加就會自動./configure & make & make test。 沒弄configure文件就會掛在這里。
- build_command_prepend,build_command 填寫編譯語句即可。
- branches: 要選好分支,不然不會跑起來。我這里是master。
測試一下提交git代碼,登陸travis-ci.org,看到下面界面。
image07.png
完成 可以去coverity看自動測試的結果.
可以參考
https://github.com/toniz/fastcgi-async-or-coroutine
這個項目。