非常简单的测试库 是否存在易于嵌入的具有友好许可证的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
:唯一的类型
&==&&&=