メモ2

Jenkins

Jenkins内での環境変数の設定方法

Make

cppunit と Jenkins

cppunit

cppunit を Windows 7 + VS2012 にインストール

  • cppunit のtar.gz 版は2008年から更新されてないし、VS2005ぐらいを対象にしてるっぽいので、Win7+VS2012とかだと多少修正が必要
  • SVN版では2013年12月1日に更新されていて、VS2010が対象に含められてるっぽい。*12
  • ここでは、1.12.1 のtar.gzを対象に解説。
  • 適当なディレクトリで電解
  • examples/examples.dsw をVS2012で開く。適当にVS2012にアップグレード
  • examples.slnに関連して、エラーが表示されたが、examples.slnのバックアップ生成に失敗しただけなので、レポート画面は閉じる
  • この時点で、VCプロジェクトファイルで変換しくってる部分があるので、以下の2点を修正する。
    • まずはソリューションを閉じる。
    • srcディレクトリ以下に cppunit.vcxproj と cppunit_dll.vcxprojを修正
    • cppunit.vcxprojでは下記を修正
      -      <Command>copy "$(TargetPath)" ..\..\lib\$(TargetName).lib</Command>
      +      <Command>copy "$(TargetDir)$(MSBuildProjectName)d.lib" ..\..\lib\</Command>
    • cppunit_dll.vcxprojでは下記を修正
      -      <Command>copy "$(TargetPath)" ..\..\lib\$(TargetName).dll
      -copy "$(TargetDir)$(TargetName).lib" ..\..\lib\$(TargetName).lib</Command>
      +      <Command>copy "$(TargetDir)cppunitd_dll.dll" ..\..\lib\
      +copy "$(TargetDir)cppunitd_dll.lib" ..\..\lib\</Command>
    • 上記の修正はそれぞれ、デバッグモードに置いて。
    • ビルドできたlib や dll ファイルをlib ディレクトリにコピーしようとするのだが、
    • デバッグ版のファイル名が cppunitd.lib cppunitd_dll.dll とdが含まれるので、それらを前述の用に修正する
  • これで何とかビルド環境ができた。
  • examples.slnを開き直す
  • CppUnitTestMain プロジェクトを右クリックしてスタートアッププロジェクトに設定する
  • バッチビルドで
    • CppUnitTestMain (Debug)
    • CppUnitTestMain (Debug DLL)
    • CppUnitTestMain (Release)
    • CppUnitTestMain (Release DLL)
  • の4つにチェックを入れる。
  • これでビルドされて、lib ディレクトリにファイルが6つできるはず。
  • 参考サイト:Visual Studio C++でCppUnitをビルドできない、そんなとき | skmks*13

cppunit の使い方(Windows 7)

cppunit を Linux (Ubuntu 12.04)にインストール

Jenkinsと連携させる(Windows)

Jenkinsと連携させる(Ubuntu)

  • Jenkins に xunit プラグインをインストーする
  • ビルドした際、xmlファイルを出力すると、そのxmlファイルをjenkins側で解析してくれる。
  • 参考サイト:(xmlファイルで出力する方法)*18
  • 新規ジョブでフリースタイルプロジェクトを作成する
  • Subversionでチェックアウトした後、ビルドするところまで設定する
  • 再度「ビルド手順の追加」をクリックして、「Process xUnit test result report」をクリックする
  • 出てきた画面から、cppunit を追加し、 CppUnit-1.12.1 (default) Pattern に、↑で設定したxmlフィアル名を指定する
  • 参考サイト:Jenkinsとc++: furuyoshi*19

gcovr

  • Gcovr は、テストがどれぐらいカバーしてるか統計してくれるツール
  • Jenkins で統計してくれる分と機能としては等価か?

Google Test

Cppcheck


*1  Welcome to Jenkins CI! | Jenkins CI, Ver 1.562, 2014-05-08閲覧
*2  Jenkins をインストール - 捨てられたブログ, 2014-05-08閲覧, 2011-12-19発表
*3  Jenkinsチュートリアル_Developers AppKitBox | AppTest | Developers AppKitBox, 2014-05-08閲覧
*4  jenkinsのJOBで環境変数を定義する - 日々精進, 2014-02-11発表, 2014-04-28閲覧
*5  JenkinsでSubversionからチェックアウトしたソースをビルドしてみる。 - 大人になったら肺呼吸, 2014-05-08閲覧
*6  Subversionで変更のあったファイルの一覧を取得する - 大人になったら肺呼吸, 2014-05-08閲覧
*7  JenkinsとMSBuild PluginでVisual Studioのプロジェクトをビルドしてみたよ。 - 大人になったら肺呼吸, 2014-05-08閲覧
*8  Hudson/JenkinsでVisual Studioプロジェクトのビルドをする – MSBuild Plugin | skmks, 2014-05-08閲覧
*9  Make Exit Status Values, 2014-09-25閲覧
*10  CppUnit - C++ port of JUnit | Free Development software downloads at SourceForge.net, 2013-04-22更新, 2014-08-20閲覧, 最新版1.12.1(2008-02-20公開)
*11  CppUnit - C++ port of JUnit - Browse /cppunit at SourceForge.net, 2008-02-20更新, 2014-08-20閲覧
*12  2014-08-20時点
*13  Visual Studio C++でCppUnitをビルドできない、そんなとき | skmks, 2011-01-25発表, 2011-04-16更新, 2014-08-20閲覧
*14  επιστημη(えぴすてーめー), 連載 C++開発者のための単体テスト入門:第2回 C++アプリケーションの効率的なテスト手法(CppUnit編) (1/4) - @IT, 2007-08-17更新, 2014-08-20閲覧, VS2005, cppunit バージョン 1.12.0
*15  k4zm blog [C++]LinuxでCppUnitを試してみました, 2009-11-14公開, 2014-08-20閲覧, fedora11(x86_64)
*16  c++ - First CppUnit Test: undefined reference to CppUnit::SourceLine::SourceLine - Stack Overflow, 2013-04-18投稿, 2013-04-18回答, 2014-08-20閲覧
*17  かわちょ, Windows に Jenkins さんをインストールした - かわちょでぶろぐ, 2013-07-20発表, 2014-08-20閲覧
*18  skmk, CppUnitを使ってみる | skmks, 2010-09-07発表, 2014-08-20閲覧
*19  Jenkinsとc++: furuyoshi, 2012-07-08発表, 2014-08-20閲覧
*20  srx_zumix, ブログズミ: Google Test を使ってみる - その6(Jenkins との連携、スキップ対応) , 2012-03-27発表, 2014-08-20閲覧
*21  Google Test - Google Test ドキュメント日本語訳, 2011-05-19更新, 2014-08-20閲覧, Google Test 1.6
*22  srz_zumix, ブログズミ: Cppcheck を使ってみた, 2012-03-23発表, 2014-08-20閲覧
*23  cppcheck | Free Development software downloads at SourceForge.net, 2014-08-02更新, 2014-08-20閲覧, バージョン 1.66

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-01-13 (火) 15:37:38 (1309d)