首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在更新到CppUnit 1.12时替换来自CppUnit 1.9的过时的getRegistryList()?

如何在更新到CppUnit 1.12时替换来自CppUnit 1.9的过时的getRegistryList()?
EN

Stack Overflow用户
提问于 2012-03-13 05:54:08
回答 1查看 176关注 0票数 1

我移植的代码有很多基于CppUnit 1.9.11左右的测试套件。我的测试运行器可以使用以下命令打印所有命名的测试套件(弃用?)成语:

代码语言:javascript
运行
复制
cout << "\n Usage: UnitTest testSuiteName ...\n\n";
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()。有没有一个等价的习惯用法来获得所有注册的、命名的测试套件?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-17 02:18:22

回答我自己的问题:

代码语言:javascript
运行
复制
cout << "\n Usage: UnitTest TestNames\n\n";
cout << " Tests available: \n";

CppUnit::TestFactoryRegistry &registry =
        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;
        }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9675358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档