github使用:實現c++代碼自動測試

實現效果


001.png

點擊左邊圖標,可以進入道測試.
總量頁面,并且每次提交代碼,都可以自動測試并在圖標上反饋結果。

使用coverity來做免費的在線代碼測試

  1. 打開coverity網站,用github賬戶登陸。
  2. 在dashboard這個頁面里,把需要實現自動測試的項目加進來。


    image01.png
  3. 之后進入剛添加的項目頁面。注意紅色的地方。


    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。

  1. 用github賬號登陸travis-ci.org.

注意travis-ci.org是免費提供給開源項目使用的。travis-ci.com是收費使用的。

  1. 用github賬號登陸travis-ci.org.
  2. travis-ci會自動把你github上面的項目關聯過來。選擇要自動測試的項目打開開關。


    image05.png
  3. 接下來是下一個.travis.yml. 先打開coverity,來到下面這個頁面,把example拷貝出來。


    image06.png
  4. 里面的環境變量和密鑰不變,其它可參考我下面的.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
這個項目。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容