gpt4 book ai didi

c++ - 现代 UnitTest++ 替换

转载 作者:搜寻专家 更新时间:2023-10-31 02:24:44 25 4
gpt4 key购买 nike

编辑:这个问题可能因为“不是真正的编程问题”而被投票关闭。我只能反驳“nyah!”现在我确实找到了this question这是直接相关的,应该有所帮助。

我正在有条不紊地升级我的源代码以达到 C++11 次,我的很多代码与之交互的部分之一是 UnitTest++。

我将我的每个实现 cpp 文件的后半部分用于单元测试,因此它们包含很多

TEST(testname) {
// test code
}

声明。

现在,UnitTest++ 已经有 8 年的历史了,它仍然编译得很好,所以我没有迫切需要替换它。然而,我发现它可能不再被维护(尽管它的现有功能看起来确实足够可靠,这是一个不好的迹象),因为网站和 sourceforge 已关闭。

因此,尽管我的代码现在可以正常工作,但早点而不是晚点切换到更好的系统可能对我有好处,因为它会减少将来的翻译负担。

我环顾四周,似乎有几个选项可供我选择。特别有意思的是libunittest和其他人喜欢 CATCH仅标题。

我的问题是想问那些过去可能使用过 UnitTest++ 和其他单元测试系统的人,哪些对您来说效果很好,您是否有任何建议。我正在寻找一种非常便携的东西,它在 C++98/03 或 C++11 编译器(gcc、clang、msvc)和标准库之外具有零外部依赖性,并且只有 header 是一个加号但不是必须的。

所以我想我的偏好确实倾向于缩小选择范围。即使使用 UnitTest++,我也喜欢它的可移植性和独立性,但我不得不编写大约 100 行左右的代码来扩展它,以便通过两种方式对我来说更灵活:

  • 允许我指定要运行的特定测试(无论是按名称、执行测试的源文件还是测试套件名称选择测试)
  • 自定义测试的报告行为,例如向我显示每次测试的计时数据并在最后总结总计——实际上我对此功能和行为有些不满意,例如我不知道如何配置 UnitTest++ 以应用我的详细测试报告程序用于运行未放置在测试套件中的测试。

一个完美的答案应该是 this来自 UnitTest++ 本身背后的一个人!但那篇文章已有 10 年历史了!!

最佳答案

您可能会发现 Google Test有用。它支持 UnitTest++ 所做的一切以及更多,并且仍在维护(并在 Google 内部定期使用)。此外,它还有一个相应的模拟库,Google Mock用于创建对创建模拟实现非常有用的模拟。

关于c++ - 现代 UnitTest++ 替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27701912/

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