CppUnitのソースコードの解析

序文

  CppUnitはは、LinuxおよびWindowsオペレーティングシステムのサポート、オープンソースのユニットテストフレームワークである、非常に、あなたがコンパイルするには、Windows上で直接VCを使用することができ、直接リンクは正常に使用することができ、動的および静的ライブラリを取得するには、Linuxの直接のソースのコンパイラで実行することができますデバッグが簡単。CppUnitのソースフレームワークは、JavaやPythonの言語に適用され広く使用され、言語におけるのCppUnitの使用に精通して、他の言語もテストフレームワークを言及し、この紙のCppUnit-1.12.1例とデモンストレーションとして指示。

 

CppUnitの下にコンパイルしてインストールするには、Linuxのソースコード

  • CppUnit-1.12.1ディレクトリにソースファイルを抽出します
  • CDのCppUnitの-1.12.1
  • ./configure --prefix =インストールパス(絶対パスでなければなりません)
  • 作ります 
  • make installを

 

編集テストコード

次の3つのファイルのmain.cppに、組織simpleTest.h、simpleTest.c、ディレクトリファイルの合計は以下のとおりです。

3つのソースファイルを次のように

//main.cpp文件

の#include "のCppUnit / TestResultCollector.h" 
の#include "のCppUnit / TextOutputter.h" 
の#include "のCppUnit / XmlOutputter.h" 
の#include "のCppUnit / CompilerOutputter.h" 
の#include「のCppUnit / TestResult.h " 
の#include "のCppUnit / TestRunner.h" 
の#include "のCppUnit /エクステンション/ TestFactoryRegistry.h" 
の#include <cstdlib> 
の#include <のostream> 

int型のmain()
{ 
    CppUnitは:: TestResult R。
    CppUnitは:: TestResultCollectorのRC。
    r.addListener(&RC); //准备好结果收集器

    のCppUnit ::テストランナーランナー; //定义执行实体
    runner.addTest()CppUnitは:: TestFactoryRegistry :: getRegistryの( "alltest" makeTest());

    // CppUnitは:: TextOutputter O(&RC、STD :: coutの); 
    //o.write()。//将结果输出
	
	//はstd :: ofstreamのファイル。
	//file.open("./UnitTest.xml "); 
	// CppUnitは:: XmlOutputter XO(&RC、ファイル); 
	//xo.write()。
	
	CppUnitは:: CompilerOutputterコ(&RC、STD :: coutの); 
	co.write(); 

    rc.wasSuccessfulを返しますか()?0:-1; 
}
// SimpleTestの.hの文件

の#include "のCppUnit /拡張子/ HelperMacros.h" 

クラスSimpleTestの:公共CppUnitは:: TestFixture 
{ 
    CPPUNIT_TEST_SUITE(SimpleTestの); 
    CPPUNIT_TEST(TEST1)。
	CPPUNIT_TEST(TEST2)。
    CPPUNIT_TEST_SUITE_END(); 
公共:
	無効TEST1(); 
	空TEST2(); 
}。
//simpleTest.cpp文件

の#include "simpleTest.h" 
の#include <ストリング> 
の#include <入出力ストリーム> 
の#include "のCppUnit / TestCase.h" 
の#include "のCppUnit / TestAssert.h" 

CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(SimpleTestの、 "alltest")。

ボイドSimpleTestの:: TEST2()
{ 
    CPPUNIT_ASSERT(3 == 3)。
} 

ボイドSimpleTestの:: TEST1()
{ 
    CPPUNIT_ASSERT(2 == 2)。
}

次のようにコンパイラのコマンドは次のとおりです。

G ++ main.cppにsimpleTest.cpp -oテスト-I /ホーム/ chusiyong / CppUnitは/インストール/ -L /ホーム/ chusiyong / CppUnitは/インストール/ libに-Wl、-Bstatic -lcppunit -Wl、-Bdynamic -ldlを含めます  

以下の結果と実行可能ファイルを実行します。

OK(2)  

これは、すべてのユースケースが正常に実行されることを意味します

 

おすすめ

転載: www.cnblogs.com/chusiyong/p/11403681.html