编辑:这个问题可能投票结束,因为“不是一个真正的编程问题”。对此,我只能反驳"nyah!“现在我确实找到了这个问题,它是直接相关的,应该会有所帮助。
我正在有条不紊地升级我的源代码,以获得与C++11时代,而其中一部分,我的代码与之交互的是UnitTest++。
我将我的每个实现cpp文件的后半部分专门用于单元测试,因此它们包含了许多
TEST(testname) {
// test code
}声明。
现在,UnitTest++已经有8年的历史了,它仍然编译得很好,所以我不迫切需要替换它。然而,我发现它可能不再被维护(尽管它现有的功能看起来确实足够坚实,这是一个不好的迹象),因为网站和sourceforge已经瘫痪了。
因此,尽管我的代码现在运行良好,但更早而不是更晚地切换到更好的系统可能对我有好处,因为它将在未来减轻翻译负担。
我环顾四周,似乎有几种选择可供选择。特别令人感兴趣的是脂试验和其他一些像捕获这样的只有头的。
我的问题是,对于那些在过去和其他单元测试系统中可能有过UnitTest++经验的人来说,什么对您很好,如果您有任何建议的话。我正在寻找的东西是非常可移植的,它除了C++98/03或C++11编译器(gcc、clang、msvc)和标准库之外,没有任何外部依赖,而且只有头是一个加号,但不是必需的。
因此,我想我的偏好确实会缩小选择范围。即使有了UnitTest++,我也喜欢它的可移植性和自约束性,但我必须编写大约100行代码才能在两种方式上灵活地扩展它:
一个完美的答案应该是像这这样的东西,而不是别人,而是UnitTest++本身背后的一个家伙!但那篇文章已经10年了!
发布于 2014-12-30 08:27:02
发布于 2015-01-14 19:54:34
我还有两个:
两者都是积极开发的。
CppUTest
非常便携..。超越C++98/03或C++11编译器(gcc、clang、msvc)和标准库
CppUTest可以与各种编译器和平台一起使用--它也适用于嵌入式系统。此外,at在C接口中有一个构建。
并且它的外部依赖性为零。
没什么好说的:下载/签出并构建,完成。
在只有头的地方是一个加号,但不是必要的。
不幸的是,这在CppUtest中是不可能的,它需要它的测试库来链接。
请允许我指定要运行的特定测试。
可能,也可以在手册中解释(不是很难)。见这里。
自定义测试报告行为,例如每次测试显示定时数据,最后汇总总计
在详细模式下,这是每个默认情况下完成的。还可以导出带有结果的JUnit Xml文件。此外,您还可以为所有步骤和输出类型自定义输出格式。
示例代码:
TEST_GROUP(FirstTestGroup)
{
/*
* Test group = test suite
* You can implement tear down / setup here too
*/
};
TEST(FirstTestGroup, FirstTest)
{
FAIL("Fail me!");
}
TEST(FirstTestGroup, SecondTest)
{
int value = 4;
const int expected = 4;
CHECK_EQUAL(expected, value);
}最后,它并不难使用:检查手册。
顺便说一句。它包含模拟(CppUMock)和集成内存泄漏检测器。
Documentation:
https://stackoverflow.com/questions/27701912
复制相似问题