0

構成を読み取るように設計されたクラスをテストする CPP 単体テストがあります。このクラスを呼び出すことができます

Config

構成クラスには実行する能力があります

Config c;
c.read("/tmp/random-tmp-directory/test.conf");

random-temp-directorybash スクリプトによって作成され、テスト バイナリに渡す必要があります。

#!/bin/bash
TEMPDIR=$(mktemp)
cp files/config/test.conf $TEMPDIR/.
./testConfig $(mktemp)/test.conf

上記は一時ディレクトリを作成し、一時ファイルをコピーしてパスをテストに渡すため、正しいファイルをロードできます。

コマンドライン引数または任意の引数をテスト レジストリに送信するように CPPUNIT に指示する方法はありますか?

これが私のtestConfig.cpp

#include <all the required.h>

CPPUNIT_TEST_SUITE_REGISTRATION(testConfig);

int main(int argc, char ** argv)
{
    CPPUNIT_NS::TestResult testresult;
    CPPUNIT_NS::TestRunner runner;
    CPPUNIT_NS::TestFactoryRegistry &registry = CPPUNIT_NS::TestFactoryRegistry::getRegistry();

    // register listener for collecting the test-results
    CPPUNIT_NS::TestResultCollector collectedresults;
    testresult.addListener(&collectedresults);

    runner.addTest(registry.makeTest());
    runner.run(testresult);

    // Print test in a compiler compatible format.
    CppUnit::CompilerOutputter outputter( &collectedresults, std::cerr );
    outputter.write(); 

    return collectedresults.wasSuccessful() ? 0 : 1;
}
4

1 に答える 1