カテゴリ:情報( 12 )

VC7.1 で cppunit その2

しばらくいじる時間がなくて前回から間が開いてしまいました。

前回、cppunit のインストールはできたので、http://www.unittest.org/ から、河童をダウンロードし、その中の子河童(cocuppa)と子馬(couma)をビルド。これらを使って、ひな形をねつ造することにします。
が、できたひな形でビルドが通りません。

結構悩んだんですが、結局のところ、次の 2 点が重要です。(今回は、2 番目の設定ができてませんでした)
・実行時型情報(RTTI)を有効にする。(プロジェクトのプロパティの、[C/C++]→[言語]→[ランタイム型情報を有効にする] を「はい (/GR)」にする)
・マルチスレッド DLL 版のランタイムライブラリを使う。(同プロパティの、「C/C++]→[コード生成]→[ランタイム ライブラリ] を Debug 版なら「マルチスレッド デバッグ DLL (/MDd)」に、Release 版なら「マルチスレッド DLL (/MD)」にする)

main() 関数は cocuppa に作らせると、ある程度高機能なものを作ってくれるんですが、そこまで必要としないので、それを参考に必要な部分だけとってきて、自分専用なコードなどを加えました。
main() 関数の中はこんな感じ。

char OutputFile[] = "TestResult.txt";
int main(int argc, char* argv[])
{
    CppUnit::TextUi::TestRunner runner;
    runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest());

    std::ofstream outputFile(OutputFile);

    CppUnit::Outputter* outputter = new CppUnit::CompilerOutputter(&runner.result(), outputFile);
    runner.setOutputter(outputter);
    bool result = runner.run();

    outputFile.close();

    ::ShellExecute(NULL, "open", OutputFile, NULL, NULL, SW_SHOWDEFAULT);
    return (result) ? 0 : 1;
}

テストケースを追加してたら、さっそくバグが見つかるし…。
[PR]
by hironytic | 2004-05-02 15:22 | 情報

VC7.1 で cppunit

Windows 版の CoveredCalc 開発環境である、VC++ 7.1(Visual Studio .NET 2003 の VC++)に cppunit を導入してみました。
別にテストファーストな開発をしようというわけでもないんですが、電卓コアエンジンに手を入れようとするたびに、思いもよらぬバグを作りそうでビクビクしてる現状を自動テストの導入で打開しようという意図があります。
#バグが作られなくなるわけではなく、ビクビクしなくてすむようになるだけ…

参考にしたのは次のページ。

http://www.sip.eee.yamaguchi-u.ac.jp/kou/200402.html
http://www.mikamama.com/CppUnitBook/draft/index.html

cppunit-1.9.12.tar.gz を落としてきて、これを使いました。

C:\cppunit に解凍し、C:\cppunit\cppunit-1.9.12\examples\examples.dsw を VC++ 7.1 で読み込んで(変換して)、HostApp をスタートアッププロジェクトに設定して(これは必要なのだろうか?)、バッチビルドですべて選択してビルド。

LINK : fatal error LNK1181: 入力ファイル 'cppunitd.lib' を開けません。

のようなエラーが大量に出たけど、cppunitd.lib のある C:\cppunit\cppunit-1.9.12\lib にパスが通ってないために出ているとそのときは思いました。
どっちにせよ、パスは通すわけだから、この段階でパスを通してしまいました。
・インクルード ファイルの最後に C:\cppunit\cppunit-1.9.12\include
・ライブラリ ファイルの最後に C:\cppunit\cppunit-1.9.12\lib
・ソース ファイルの最後に C:\cppunit\cppunit-1.9.12\src\cppunit
を追加。
それでもエラーが出るので、見てみたら、C:\cppunit\cppunit-1.9.12\lib の中に cppunitd.lib なんてないじゃないですか!
C:\cppunit\cppunit-1.9.12\src\cppunit\Debug と C:\cppunit\cppunit-1.9.12\src\cppunit\Release にそれらしいのがあったので、それぞれ cppunitd.lib, cppunit.lib を C:\cppunit\cppunit-1.9.12\lib にコピーしてから再度ビルドしたらビルドが通りました。

その後、CppUnitTestApp をスタートアッププロジェクトにして実行。MFC による GUI 版 TestRunner が動作することを確認しました。

とりあえず、インストールできた、ってとこで今回は終わり。
[PR]
by hironytic | 2004-04-25 21:57 | 情報