问题标签 [cppunit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3039 浏览

c++ - 致命错误 C1083

我得到一个编译器错误,我似乎无法弄清楚如何修复。是的,我知道这是一个愚蠢的,但我似乎无法阻止它。我已在 IDE 选项中将包含添加到 VC++ 目录中。任何帮助将不胜感激。

这是错误:

错误 1 ​​致命错误 C1083:无法打开包含文件:'cppunit/TestFixture.h':没有这样的文件或目录 c:\...\Application\Test.cpp 5

0 投票
2 回答
2798 浏览

c++ - CUnit - “模拟” libc 函数

我正在使用 CUnit 进行项目单元测试。我需要测试我是否使用正确的参数调用 libc 函数以及我是否以正确的方式处理它们的返回值。例如:如果我调用 bind(...) 函数 - 我想检查我传递了哪个 af 参数并断言这是错误的参数,如果我检查它我想模拟它的返回值和断言正确的方式。

出于这些目的,我希望 CUnit 环境有一个内置机制,让我在测试时调用“模拟”bind() 函数,在运行代码时调用真正的 bind() 函数 - 但我找不到类似的东西这。

你能告诉我我是否在 CUnit 中遗漏了一些东西,或者建议一种方法来实现它。

谢谢,乔。

0 投票
2 回答
2089 浏览

c++ - 如何使用 cppunit 显示测试方法名称

如何从点更改 cppunit 的输出,指示对测试的实际名称进行了多少测试,或者至少是给测试调用者的字符串,作为计数点并猜测哪个测试-它所代表的功能是非常低效的,以防万一实际上杀死整个程序的分段错误。我只是找到了在断言失败的情况下更改错误输出的参考,但在一般输出上没有任何内容。

我的 Testclass 的套件功能:

主文件

我希望有一些这样的输出:

这样我就可以确定程序何时由于不可捕获的异常(例如 SegFault)而崩溃。

但目前我的输出看起来像这样:

0 投票
1 回答
329 浏览

c++ - 模拟对象问题

我们有以下问题:许多我们无法触及但需要对它们进行单元测试的类不幸的是,这些类在设计时并未考虑到单元测试,因此我们会创建模拟对象来测试代码。

例子:

在上面的例子中,我们想测试foo1()但它需要foo2(),所以我们想让它foo2()属于一个模拟对象(在现实生活中,这些函数/类要复杂得多,并且涉及与硬件配置等的交互,因此需要模拟对象/函数)。

到目前为止,我们已经做了类似的事情,但实际上并不是最优的,因为代码似乎对其他单元测试有副作用。

有没有更好的方法可以在不更改原始类(或更改最少)的情况下做到这一点?我们使用 CPPUnit 进行测试。

编辑:添加标签 winapi 以更清楚地描述环境。

0 投票
3 回答
7179 浏览

cppunit - CppUnit:运行单个测试用例

http://cppunit.sourceforge.net/doc/lastest/cppunit_cookbook.html

他们提供了一个简单的 TestCase 但没有展示如何运行它(没有main功能)。我查看了他们的文档,但找不到如何运行测试并获取有关它是否成功的文本输出。我不想组装一个固定装置或使用注册表或任何东西。

如何运行单个测试用例?IEmain附带的功能是什么?

0 投票
5 回答
16921 浏览

makefile - 在库中找不到宏“AM_PATH_CPPUNIT”

我正在尝试建立libtorrent在共享主机上。--prefix=$HOME所以用.构建 CPPUnit(1.12.1) 之后我的$HOME/lib$HOME/include包含 CPPUnit 库和头文件。

我导出的LD_路径

然后我运行libtorrent/autogen.sh --prefix=$HOME并收到以下警告,这会阻止我运行配置:

cppunit.m4 文件位于 $HOME/share/aclocal。我想libtorrent由于某种原因找不到那个目录。

0 投票
1 回答
294 浏览

oracle - CppUnit 上的 C++ 链接器错误

我正在尝试为 CppUnit 编译一个扩展库。

但它在链接时给了我以下错误:

DatabaseAssert.cp:(.text+0x782): undefined reference to 'CppUnit::DatabaseAssert::getDBConnection(DBAdapter*)'

包含的头文件具有以下定义:

static oracle::occi::Connection* getDBConnection(DBAdapter *dbAdapter);

任何线索为什么我仍然收到undefined reference错误?

0 投票
1 回答
1398 浏览

cppunit - 如何为由 libevent 管理的事件驱动应用程序编写单元测试?

我正在使用 libevent 库为异步 I/O 编写一个事件驱动的应用程序。本质上,应用程序有一个 evconnlistener 监听端口上的数据。在接收数据时,数据会根据数据负载转发到相应的 http REST 端点。转发组件使用 libevent 提供的 evhttp_*。

我能够将应用程序作为外部进程进行测试,以满足应用程序的健全性,但是在生成代码覆盖率报告时我感到很困惑。如何编写可以通过常规单元测试框架(例如 cppunit)调用的单元测试?

0 投票
1 回答
626 浏览

c++ - CPPUNIT:如何使用名称创建 TestFixture 的实例

我有两个名为“ TT_Common ”和“ TT_Container ”的测试类,它们扩展了 CPPUNIT_NS::TestFixture:

另一个名为 TT_Runner 的类扩展了 CPPUNIT_NS::TestRunner:

我已经有了TestFixture 的名称,但是如何创建它的实例?我找不到采用名称并返回实例的工厂或注册表。

0 投票
1 回答
638 浏览

perl - CppUnit 输出到 TAP 格式转换器

我寻求一个 perl 模块来将 CppUnit 输出转换为 TAP 格式。之后我想使用证明命令来运行和检查测试。