编辑:这个问题可能因为“不是一个真正的编程问题”而被投票关闭。对此,我只能反驳“啊!” 现在我确实发现了这个直接相关并且应该有所帮助的问题。
我正在有条不紊地升级我的源代码以使用 C++11 次,我的许多代码与之交互的部分之一是 UnitTest++。
我将每个实现文件的后半部分都专门cpp
用于单元测试,因此它们包括许多
TEST(testname) {
// test code
}
声明。
现在,UnitTest++ 已经有 8 年的历史了,它仍然编译得很好,所以我没有迫切需要更换它。但是我发现它可能不再被维护(尽管它现有的功能看起来确实足够可靠,这是一个不好的迹象),因为网站和 sourceforge 已经关闭。
因此,即使我的代码现在可以正常工作,但现在早点而不是晚点切换到更好的系统可能对我有利,因为它将减少将来的翻译负担。
我环顾四周,似乎有一些可供我选择的选择。特别有趣的是libunittest和CATCH之类的,它只是标头。
我的问题是对于过去可能有过 UnitTest++ 和其他单元测试系统经验的人,什么对你有用,如果你有任何建议。我正在寻找一种非常可移植的东西,除了 C++98/03 或 C++11 编译器(gcc、clang、msvc)和标准库之外,它的外部依赖性为零,而且只有标头是一个优点但不是必需的。
所以我想我的偏好确实倾向于缩小选择范围。即使使用 UnitTest++,我也喜欢它的可移植性和自包含性,但我必须编写大约 100 行左右的代码来扩展它,以便以两种方式对我来说更灵活:
- 允许我指定要运行的特定测试(无论是按名称选择测试,还是按实现它们的源文件或测试套件名称)
- 自定义测试的报告行为,例如向我显示每个测试的计时数据并在最后汇总总计 - 我实际上对此功能和行为有些不满意,例如我不知道如何配置 UnitTest++ 以应用我的详细测试报告者运行未放置在测试套件中的测试。
一个完美的答案将是来自 UnitTest++ 本身背后的人之一!但是那篇文章已经有10年了!