我有一个 CPP 单元测试,它测试一个旨在读取配置的类:我们可以调用这个类
Config
配置类有能力做
Config c;
c.read("/tmp/random-tmp-directory/test.conf");
由random-temp-directory
bash 脚本创建,应传递到测试二进制文件中。
#!/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 ®istry = 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;
}