gpt4 book ai didi

cppunit - 如何通过在运行时选择它们来在 CPPUnit 中运行单元测试的子集?

转载 作者:行者123 更新时间:2023-12-04 15:04:50 25 4
gpt4 key购买 nike

我使用 CppUnit 作为单元测试框架。是否可以选择在运行时执行的测试用例子集?

CppUnit 中是否提供了过滤选项来适应这一点?

最佳答案

您可能在 main() 中调用的 TestRunner::run() 方法实际上具有可选参数:run(std::string testName = "", bool doWait = false, bool doPrintResult = true, bool doPrintProgress = true)。 testName 必须是测试的特定名称。如果需要,您可以按名称请求特定测试。您还可以对特定测试调用 runTest(Test*) 或 runTestByName(testName)。

但听起来你想要变得更复杂。假设您使用 CPPUNIT_TEST_SUITE_REGISTRATION() 宏注册了所有测试,静态 TestFactoryRegistry::makeTest() 方法将返回所有注册测试的 TestSuite。

TestSuite 对象通过 getTests() 方法产生一个向量。您可以遍历它们,将它们的名称与正则表达式(或通过索引号或您想要的任何方式)进行匹配,而不是像大多数人那样在整个套件上调用 TestRunner::addTest(registry.makeTest()),您只需添加您要求的特定测试。

您必须编写一些东西来迭代测试并进行匹配,但除此之外它应该非常简单。大概有十几行代码,加上解析命令行参数。使用正则表达式让自己更简单。

关于cppunit - 如何通过在运行时选择它们来在 CPPUnit 中运行单元测试的子集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2783690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com