如何在更新到CppUnit 1.12时替换CppUnit 1.9中过时的getRegistryList()
How to replace obsolete getRegistryList() from CppUnit 1.9 when updating to CppUnit 1.12?
我移植的代码有很多基于CppUnit 1.9.11左右的测试套件。我的测试运行程序可以使用以下(不推荐使用?)习惯用法打印所有命名的测试套件:
cout << "n Usage: UnitTest testSuiteName ...nn";
cout << " Tests available: n";
CppUnit::TestFactoryRegistry registry("All Tests");
CppUnit::Test* test = registry.getRegistry().makeTest();
CppUnit::Registries registryList = registry.getRegistryList();
CppUnit::Registries::iterator it;
for (it = registryList.begin(); it != registryList.end(); ++it)
{
cout << " - " << it->first << endl;
}
显然,在CppUnit 1.12中不存在getRegistryList()。是否有一个等效的习惯用法来获取所有注册的、命名的测试套件?
回答我自己的问题:
cout << "n Usage: UnitTest TestNamesnn";
cout << " Tests available: n";
CppUnit::TestFactoryRegistry ®istry =
CppUnit::TestFactoryRegistry::getRegistry(); // "All Tests"
CppUnit::Test *test = registry.makeTest();
CppUnit::TestSuite *s = dynamic_cast<CppUnit::TestSuite*>(test);
if (!s) {
cerr << "can't get TestSuite" << endl;
} else {
typedef CppUnitVector<CppUnit::Test *> container_type;
const container_type &tests( s->getTests() );
container_type::const_iterator ii;
for (ii=tests.begin(); ii != tests.end(); ++ii) {
const CppUnit::Test *t = (*ii);
cout << " - " << t->getName() << endl;
}
}
相关文章:
- 尽管测试成功,CppUnit测试核心仍被丢弃.为什么
- 针对过时的模板显式实例化进行编译
- 在 CppUnit 中测试中止断言失败
- C++使用现代编译器编译的项目,但链接到过时的libstdc++
- 无法使用 openssl 服务器,因为密码已过时...什么的...ERR_SSL_VERSION_OR_CIPHER_MISMATCH
- 移动构造函数是否C++过时?
- CppUnit:如何立即打印故障详细信息
- CppUnit - 如何在 setUp() 中使用 unique_ptr
- decltype(auto) 是否使尾随返回类型过时?
- CppUnit 测试与 Qt 5.9 一起挂起
- cppUnit:针对多个测试方法执行一次的设置函数
- C++ 每次字符串通过时递减值
- 过时的编码(C )的确切含义是什么?
- 赫伯·萨特在 GotW #35 中关于字体名的代码笑话过时了吗?
- 我在哪里可以找到 cppunit 的版本
- 检查动态链接库是否已过时
- CppUnit:为什么静态局部变量保持其值
- cppunit导出本地变量
- cppUnit 找不到 C++11 库
- 如何在更新到CppUnit 1.12时替换CppUnit 1.9中过时的getRegistryList()