MyEnigma

とある自律移動システムエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

ユニットテストカバレッジ可視化入門

目次

はじめに

近年、プログラミングをする上で、

テストを書き、そのテストを継続的に実行する

継続的インテグレーション(CI)を利用することは当たり前になってきました。

myenigma.hatenablog.com

myenigma.hatenablog.com

 

CIを実現する上で、

オンプレミスでは、Jenkins

myenigma.hatenablog.com

クラウドで、OSがLinux, Mac OSの場合は、Travis-CIや

Travis CI - Test and Deploy Your Code with Confidence

Circle-CI、

Continuous Integration and Delivery - CircleCI

Windowsの場合は、AppVeyorがあります。

myenigma.hatenablog.com

 

最近は、ユニットテストを実行するだけでなく、

ユニットテストがカバーしているコードの割合を表示するのも

よく実施されます。

今回は、Coverallsというテストカバレッジ可視化サービスを使う方法をまとめておきます。

coveralls.io

 

Coverallsを使うと、下記の画像のように、

テストカバレッジの結果を

GitHubのREADMEなどに表示することができます。

f:id:meison_amsl:20181111205140p:plain

 

PythonプロジェクトをTravis CI上でテストして、Coverallsでカバレッジを可視化する

基本的には下記の記事通りにやればOKです。

pipでcoverallsをインストールし、

pythonコマンドの代わりに、coverage runコマンドを起動し、

生成された.coverageファイルから、coverallsコマンドで

coverallサーバにデータを送る形です。

 

下記のように、pythonのunittest discoverでテストを実施している場合、

$ python -m unittest discover ./

下記のようにコマンドを置き換えれば、テストを実施しつつ、

テストカバレッジを生成することができます。

$ coverage run -m unittest discover ./

 

JuliaのプロジェクトをTravis CI上でテストして、Coverallsでカバレッジを可視化する

基本的には、前述のPythonの方法と同じで、

下記のリポジトリと、READMEにかかれている内容を実施します。

github.com

 

まず、coverallsでリポジトリを指定し、

Juliaのコードを--code-coverageのオプションを指定して実行します。

$ julia --code-coverage test/runtests.jl

そして最後に、

$ - julia -e 'using Coverage; Coveralls.submit(process_folder())'

で、カバレッジデータをcoverallサーバに送信します。

 

一つ注意点として、

テストカバレッジを取りたいJuliaのコードは、

パッケージディレクトリの直下の、

srcディレクトリの下に配置されている必要があります。

 

参考資料

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

MyEnigma Supporters

もしこの記事が参考になり、

ブログをサポートしたいと思われた方は、

こちらからよろしくお願いします。

myenigma.hatenablog.com