實現(xiàn)效果
點擊左邊圖標(biāo)鸥跟,可以進(jìn)入道測試.
總量頁面,并且每次提交代碼盔沫,都可以自動測試并在圖標(biāo)上反饋結(jié)果医咨。
使用coverity來做免費的在線代碼測試
- 打開coverity網(wǎng)站,用github賬戶登陸架诞。
-
在dashboard這個頁面里拟淮,把需要實現(xiàn)自動測試的項目加進(jìn)來。
image01.png -
之后進(jìn)入剛添加的項目頁面谴忧。注意紅色的地方很泊。
image02.png
右邊的紅框表示配置的進(jìn)度。現(xiàn)在Registered project是打勾的沾谓。
-
接下了我們配置Submitted first build撑蚌。直接點擊進(jìn)入下面頁面:
image03.png
上面紅框是上傳build的模式。其實就兩種模式搏屑,upload build和submit url都需要下載它的測試包,然后手工執(zhí)行再上傳粉楚。Travis CI就是實現(xiàn)自動測試代碼的模式辣恋。
手工上傳的我在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
# 設(shè)置系統(tǒng)路徑
export PATH=$PATH:/root/cov-analysis-linux64-2017.07/bin
# 切換到項目目錄下
cd ../service async-or-coroutine-fastcgi
# 執(zhí)行測試程序收集數(shù)據(jù)。
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
做完這個模软。等待一下就可以看到測試結(jié)果了伟骨,不過只能看到總覽的,測試詳情要等兩天燃异。
可以按上面設(shè)置把結(jié)果圖例添加到我們項目中携狭。
[圖片上傳失敗...(image-cc8ccc-1515464260420)]
嗯 項目里可以看到測試結(jié)果了。接下來看看如何實現(xiàn)自動測試回俐。
使用travis-ci.org這個網(wǎng)站來實現(xiàn)Git更新檢測->自動測試->上傳測試報告到coverity逛腿。
- 用github賬號登陸travis-ci.org.
注意travis-ci.org是免費提供給開源項目使用的。travis-ci.com是收費使用的仅颇。
- 用github賬號登陸travis-ci.org.
-
travis-ci會自動把你github上面的項目關(guān)聯(lián)過來单默。選擇要自動測試的項目打開開關(guān)。
image05.png -
接下來是下一個.travis.yml. 先打開coverity忘瓦,來到下面這個頁面,把example拷貝出來搁廓。
image06.png - 里面的環(huán)境變量和密鑰不變,其它可參考我下面的.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看自動測試的結(jié)果.
可以參考
https://github.com/toniz/fastcgi-async-or-coroutine
這個項目皆尔。