非常简单的测试库 是否存在易于嵌入的具有友好许可证的C++测试库?我想要一个单一的头文件。没有.cpp文件,没有5 PB的包含。因此,CPPFUnit和Boost.Test都已退出
基本上,我只想把一个文件放到项目树中,包含它并能够编写非常简单的测试库 是否存在易于嵌入的具有友好许可证的C++测试库?我想要一个单一的头文件。没有.cpp文件,没有5 PB的包含。因此,CPPFUnit和Boost.Test都已退出,c++,testing,C++,Testing,基本上,我只想把一个文件放到项目树中,包含它并能够编写 testEqual(a,b) 看看它是否失败。我会使用assert,但它不能在非调试模式下工作,不能打印a和b的值,在重写assert之前,我宁愿搜索现有库。尝试谷歌测试 它真的很轻,跨平台,简单 试试谷歌测试 它真的很轻,跨平台,简单 我很想说“写你自己的”,这就是我所做的。另一方面,你可能想重用我写的东西:和。将cpp文件中的一个定义内联到hpp文件中很简单。麻省理工学院李森斯分校。我还将其粘贴到下面的答案中 这使您可以编写如下测试
testEqual(a,b)
看看它是否失败。我会使用assert
,但它不能在非调试模式下工作,不能打印a
和b
的值,在重写assert
之前,我宁愿搜索现有库。尝试谷歌测试
它真的很轻,跨平台,简单 试试谷歌测试
它真的很轻,跨平台,简单 我很想说“写你自己的”,这就是我所做的。另一方面,你可能想重用我写的东西:和。将cpp文件中的一个定义内联到hpp文件中很简单。麻省理工学院李森斯分校。我还将其粘贴到下面的答案中
这使您可以编写如下测试文件:
#include "test_util.hpp"
bool test_one() {
bool ok = true;
CHECK_EQUAL(1, 1);
return ok;
}
int main() {
bool ok = true;
ok &= test_one();
// Alternatively, if you want better error reporting:
ok &= EXEC(test_one);
// ...
return ok ? 0 : 1;
}
在目录中浏览以获得更多灵感
//作者:马格努斯·霍夫http://stackoverflow.com/a/9964394
#ifndef试验\u UTIL\u水电站
#定义TEST_UTIL_水电站
#包括
//错误消息的格式类似于GCC的错误消息,以允许IDE
//将它们作为错误消息提取。
#定义报告(msg)\
我很想说“写你自己的”,这就是我所做的。另一方面,你可能想重用我写的东西:和。将cpp文件中的一个定义内联到hpp文件中很简单。麻省理工学院李森斯分校。我还将其粘贴到下面的答案中
这使您可以编写如下测试文件:
#include "test_util.hpp"
bool test_one() {
bool ok = true;
CHECK_EQUAL(1, 1);
return ok;
}
int main() {
bool ok = true;
ok &= test_one();
// Alternatively, if you want better error reporting:
ok &= EXEC(test_one);
// ...
return ok ? 0 : 1;
}
在目录中浏览以获得更多灵感
//作者:马格努斯·霍夫http://stackoverflow.com/a/9964394
#ifndef试验\u UTIL\u水电站
#定义TEST_UTIL_水电站
#包括
//错误消息的格式类似于GCC的错误消息,以允许IDE
//将它们作为错误消息提取。
#定义报告(msg)\
如果您正在运行测试,您可能希望在调试模式下编译。在包含assert.h
之前,您是否尝试过定义debug
?可能有用,但不确定。@OliCharlesworth,不总是。@LuchianGrigore,它可能会触发其他#ifndef NDEBUG,我真的不知道want@user1306239如果定义了include,则在它之后重新定义DEBUG
。如果正在运行测试,您可能希望在调试模式下编译。在包含assert.h
之前,您是否尝试过定义debug
?可能有用,但不确定。@OliCharlesworth,不总是。@LuchianGrigore,它可能会触发其他#ifndef NDEBUG,我真的不知道want@user1306239如果定义了include,则可以在include之后重新定义DEBUG
:唯一的类型&===&&
bool
:唯一的类型&==&&&=