すべてのテスト クラスの基本クラスはです。 andCppUnit::TestFixture
のような関数をオーバーライドして、テスト オブジェクトを初期化し、それらを削除できます。setUp
tearDown
というテスト クラスがあるとMyFirstTest
します。テスト関数を Cpp フレームワークに登録するには、次のことを行う必要があります。
CPPUNIT_TEST_SUITE(MyFirstTest);
CPPUNIT_TEST(myTestFunction);
... //any other function you want to register with appropriate macros
CPPUNIT_TEST_SUITE_END();
また、各テスト クラスを登録する必要があります (それぞれのヘッダーまたは cpp ファイルに)。
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(MyFirstTest, "YouTestName");
テストクラスをセットアップしたら、それを実行できます。メイン関数は次のようになります。
bool wasSuccessful = false;
try
{
CppUnit::TextUi::TestRunner runner;
runner.setOutputter( new CppUnit::CompilerOutputter(&runner.result(), std::cerr));
CppUnit::TestFactoryRegistry ®istry = CppUnit::TestFactoryRegistry::getRegistry("YouTestName");
runner.addTest(registry.makeTest());
wasSuccessful = runner.run("", false);
}
catch(const std::exception& e)
{
std::cerr << e.what() << std::endl;
wasSuccessful = false;
}
さらにテスト クラスを追加する場合、メイン関数は同じままです。テスト クラス (そのクラスから派生CppUnit::TestFixture
) を作成し、メソッドを登録するだけです。重要なステップは、 を使用してフレームワークにクラスを登録することですCPPUNIT_TEST_SUITE_NAMED_REGISTRATION
。getRegistry
関数で使用されるメソッドは、フレームワークに登録したすべてのテスト クラスを取得し、または他の適切なマクロmain
を使用して登録したクラスのすべてのメソッドを実行します。CPPUNIT_TEST