[[メモ2]]
*Jenkins [#e3432e78]
-[[Jenkins公式サイト>http://jenkins-ci.org/]]¬e{jenkins-official:[[Welcome to Jenkins CI! | Jenkins CI>http://jenkins-ci.org/]], Ver 1.562, 2014-05-08閲覧};
-[[Jenkins をインストール - 捨てられたブログ>http://blog.recyclebin.jp/archives/2344]]¬e{how-to-install-jenkins-recyclebin:[[Jenkins をインストール - 捨てられたブログ>http://blog.recyclebin.jp/archives/2344]], 2014-05-08閲覧, 2011-12-19発表};
-[[Jenkinsチュートリアル_Developers AppKitBox | AppTest | Developers AppKitBox>http://appkitbox.com/knowledge/test/2012/11/12/jenkins-first]]¬e{tutorial-of-jenkins:[[Jenkinsチュートリアル_Developers AppKitBox | AppTest | Developers AppKitBox>http://appkitbox.com/knowledge/test/2012/11/12/jenkins-first]], 2014-05-08閲覧};
*Jenkins内での環境変数の設定方法 [#l520048b]
-[[jenkinsのJOBで環境変数を定義する - 日々精進>http://d.hatena.ne.jp/anton0825/20140211/1392224349]]¬e{how-to-define-an-environmental-variable-on-jenkins:[[jenkinsのJOBで環境変数を定義する - 日々精進>http://d.hatena.ne.jp/anton0825/20140211/1392224349]], 2014-02-11発表, 2014-04-28閲覧};
-[[JenkinsでSubversionからチェックアウトしたソースをビルドしてみる。 - 大人になったら肺呼吸>http://d.hatena.ne.jp/replication/20111127/1322389412]]¬e{checkout-subversion-using-jenkins:[[JenkinsでSubversionからチェックアウトしたソースをビルドしてみる。 - 大人になったら肺呼吸>http://d.hatena.ne.jp/replication/20111127/1322389412]], 2014-05-08閲覧};
-[[Subversionで変更のあったファイルの一覧を取得する - 大人になったら肺呼吸>http://d.hatena.ne.jp/replication/20111125/1322149282]]¬e{get-the-list-of-file-name-modified-by-subversion:[[Subversionで変更のあったファイルの一覧を取得する - 大人になったら肺呼吸>http://d.hatena.ne.jp/replication/20111125/1322149282]], 2014-05-08閲覧};
-[[JenkinsとMSBuild PluginでVisual Studioのプロジェクトをビルドしてみたよ。 - 大人になったら肺呼吸>http://d.hatena.ne.jp/replication/20111122/1321972505]]¬e{using-msbuild-from-jenkins:[[JenkinsとMSBuild PluginでVisual Studioのプロジェクトをビルドしてみたよ。 - 大人になったら肺呼吸>http://d.hatena.ne.jp/replication/20111122/1321972505]], 2014-05-08閲覧};
-[[Hudson/JenkinsでVisual Studioプロジェクトのビルドをする – MSBuild Plugin | skmks>http://unicus.jp/skmk/archives/515]]¬e{using-jenkins-with-visual-studio:[[Hudson/JenkinsでVisual Studioプロジェクトのビルドをする – MSBuild Plugin | skmks>http://unicus.jp/skmk/archives/515]], 2014-05-08閲覧};
*Make [#z636e5e0]
-Makeの返り値一覧
-0で正常終了
-[[Make Exit Status Values>http://www.opussoftware.com/manual/appendices/B1.htm]]¬e{make-exit-status:[[Make Exit Status Values>http://www.opussoftware.com/manual/appendices/B1.htm]], 2014-09-25閲覧};
*cppunit と Jenkins [#w0926c8d]
**cppunit [#mbd010f9]
-[[公式サイト>http://sourceforge.net/projects/cppunit/]]¬e{cpp-port-of-junit-official:[[CppUnit - C++ port of JUnit | Free Development software downloads at SourceForge.net>http://sourceforge.net/projects/cppunit/]], 2013-04-22更新, 2014-08-20閲覧, 最新版1.12.1(2008-02-20公開)};
-[[ダウンロードサイト>http://sourceforge.net/projects/cppunit/files/cppunit/]]¬e{cpp-port-of-junit-download-official:[[CppUnit - C++ port of JUnit - Browse /cppunit at SourceForge.net>http://sourceforge.net/projects/cppunit/files/cppunit/]], 2008-02-20更新, 2014-08-20閲覧};
-最新版のファイル(Latest version)というリンクは何故かcvs版のリポジトリなので、ダウンロードしても致し方ない。
-[[1.12.1版のダウンロードサイト>http://sourceforge.net/projects/cppunit/files/cppunit/1.12.1/]]
**cppunit を Windows 7 + VS2012 にインストール [#b1b636c0]
-cppunit のtar.gz 版は2008年から更新されてないし、VS2005ぐらいを対象にしてるっぽいので、Win7+VS2012とかだと多少修正が必要
-SVN版では2013年12月1日に更新されていて、VS2010が対象に含められてるっぽい。¬e{cppunit-vs-2010-svn-confirmed:2014-08-20時点};
-ここでは、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 ディレクトリにコピーしようとするのだが、
--デバッグ版のファイル名が cppunit''d''.lib cppunit''d''_dll.dll とdが含まれるので、それらを前述の用に修正する
-これで何とかビルド環境ができた。
-examples.slnを開き直す
-CppUnitTestMain プロジェクトを右クリックしてスタートアッププロジェクトに設定する
-バッチビルドで
--CppUnitTestMain (Debug)
--CppUnitTestMain (Debug DLL)
--CppUnitTestMain (Release)
--CppUnitTestMain (Release DLL)
-の4つにチェックを入れる。
-これでビルドされて、lib ディレクトリにファイルが6つできるはず。
-参考サイト:[[Visual Studio C++でCppUnitをビルドできない、そんなとき | skmks>http://unicus.jp/skmk/archives/422]]¬e{when-you-fail-building-cppunit-using-vs-smks:[[Visual Studio C++でCppUnitをビルドできない、そんなとき | skmks>http://unicus.jp/skmk/archives/422]], 2011-01-25発表, 2011-04-16更新, 2014-08-20閲覧};
**cppunit の使い方(Windows 7) [#b108e062]
-テストに際しては3種類のコードが必要
--テストされるべきコード
--テストコード
--テストを実行するコード(ランナー)
-テスター、ランナーには cppunit のヘッダで定義されてるマクロをふんだんに使う
-参考サイト:[[連載 C++開発者のための単体テスト入門:第2回 C++アプリケーションの効率的なテスト手法(CppUnit編) (1/4) - @IT>http://www.atmarkit.co.jp/ait/articles/0708/17/news078.html]]¬e{how-to-use-cppunit-atmarkit:επιστημη(えぴすてーめー), [[連載 C++開発者のための単体テスト入門:第2回 C++アプリケーションの効率的なテスト手法(CppUnit編) (1/4) - @IT>http://www.atmarkit.co.jp/ait/articles/0708/17/news078.html]], 2007-08-17更新, 2014-08-20閲覧, VS2005, cppunit バージョン 1.12.0};
**cppunit を Linux (Ubuntu 12.04)にインストール [#jfde4c7b]
-Linux の Ubuntu 12.04 では、 libcppunit パッケージとして提供される。
sudo apt-get -y install libcppunit-dev
-Makefile を作成する必要がある。
-参考サイト:[[k4zm blog [C++]LinuxでCppUnitを試してみました>http://k4zmblog.dtiblog.com/?no=338]]¬e{cppunit-on-linux:[[k4zm blog [C++]LinuxでCppUnitを試してみました>http://k4zmblog.dtiblog.com/?no=338]], 2009-11-14公開, 2014-08-20閲覧, fedora11(x86_64)};
-参考サイト:[[c++ - First CppUnit Test: undefined reference to CppUnit::SourceLine::SourceLine - Stack Overflow>http://stackoverflow.com/questions/16077518/first-cppunit-test-undefined-reference-to-cppunitsourcelinesourceline]]¬e{undefined-reference-to-cppunit-error-stack-over-flow:[[c++ - First CppUnit Test: undefined reference to CppUnit::SourceLine::SourceLine - Stack Overflow>http://stackoverflow.com/questions/16077518/first-cppunit-test-undefined-reference-to-cppunitsourcelinesourceline]], 2013-04-18投稿, 2013-04-18回答, 2014-08-20閲覧};
**Jenkinsと連携させる(Windows) [#be150252]
-参考サイト:[[Windows に Jenkins さんをインストールした - かわちょでぶろぐ>http://kawachodev.hatenablog.jp/entry/2013/07/20/151659]]¬e{try-to-install-jenkins-on-windows:かわちょ, [[Windows に Jenkins さんをインストールした - かわちょでぶろぐ>http://kawachodev.hatenablog.jp/entry/2013/07/20/151659]], 2013-07-20発表, 2014-08-20閲覧};
**Jenkinsと連携させる(Ubuntu) [#t550140d]
-Jenkins に xunit プラグインをインストーする
-ビルドした際、xmlファイルを出力すると、そのxmlファイルをjenkins側で解析してくれる。
-参考サイト:[[(xmlファイルで出力する方法)>http://unicus.jp/skmk/archives/251]]¬e{how-to-output-with-xml:skmk, [[CppUnitを使ってみる | skmks>http://unicus.jp/skmk/archives/251]], 2010-09-07発表, 2014-08-20閲覧};
-新規ジョブでフリースタイルプロジェクトを作成する
-Subversionでチェックアウトした後、ビルドするところまで設定する
-再度「ビルド手順の追加」をクリックして、「Process xUnit test result report」をクリックする
-出てきた画面から、cppunit を追加し、 CppUnit-1.12.1 (default) Pattern に、↑で設定したxmlフィアル名を指定する
-参考サイト:[[Jenkinsとc++: furuyoshi>http://furuyoshi.air-nifty.com/blog/2012/07/jenkinsc-7d78.html]]¬e{how-to-relate-jenkins-and-cpp-furuyoshi:[[Jenkinsとc++: furuyoshi>http://furuyoshi.air-nifty.com/blog/2012/07/jenkinsc-7d78.html]], 2012-07-08発表, 2014-08-20閲覧};
*gcovr [#f4ac254c]
-Gcovr は、テストがどれぐらいカバーしてるか統計してくれるツール
-Jenkins で統計してくれる分と機能としては等価か?
*Google Test [#ee9bcfb4]
-Google Test も cppunit も同様のプログラム
-cppunit と Google Test の比較:[[c++ - GoogleTest vs CppUnit: The facts - Stack Overflow>http://stackoverflow.com/questions/7922289/googletest-vs-cppunit-the-facts]]
-参考サイト:[[ブログズミ: Google Test を使ってみる - その6(Jenkins との連携、スキップ対応) >http://srz-zumix.blogspot.jp/2012/03/google-test-jenkins.html]]¬e{google-test-jenkins-relation-with-skip:srx_zumix, [[ブログズミ: Google Test を使ってみる - その6(Jenkins との連携、スキップ対応) >http://srz-zumix.blogspot.jp/2012/03/google-test-jenkins.html]], 2012-03-27発表, 2014-08-20閲覧};
-参考サイト:[[Google Test - Google Test ドキュメント日本語訳>http://opencv.jp/googletestdocs/]]¬e{google-test-on-opencv-jp:[[Google Test - Google Test ドキュメント日本語訳>http://opencv.jp/googletestdocs/]], 2011-05-19更新, 2014-08-20閲覧, Google Test 1.6};
*Cppcheck [#i1e5310b]
-ソースコードを解析して警告を表示してくれる
-参考サイト:[[ブログズミ: Cppcheck を使ってみた>http://srz-zumix.blogspot.jp/2012/03/cppcheck.html]]¬e{how-to-use-cppcheck:srz_zumix, [[ブログズミ: Cppcheck を使ってみた>http://srz-zumix.blogspot.jp/2012/03/cppcheck.html]], 2012-03-23発表, 2014-08-20閲覧};
-公式サイト:[[cppcheck | Free Development software downloads at SourceForge.net>http://sourceforge.net/projects/cppcheck/]]¬e{cpp-check-official:[[cppcheck | Free Development software downloads at SourceForge.net>http://sourceforge.net/projects/cppcheck/]], 2014-08-02更新, 2014-08-20閲覧, バージョン 1.66};