问题标签 [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.
c++ - 使用 CppUnit 进行内存泄漏检测
是否有人知道 CppUnit 的扩展,可用于在逐个测试的基础上做出有关内存泄漏的断言。
即 CPPUNIT_ASSERT_NO_LEAKS()?
本质上,当测试的执行导致内存泄漏时,我希望能够使特定测试失败。
visual-studio - Visual Studio 找不到 CPPUNIT 调试数据库
我正在使用带有 CPPUNIT 的 Visual Studio 2008。我已经编译了 CPPUNIT 并将 CPPUNIT 路径添加到 Include 和 Library 路径。目前,我可以使用 CPPUNIT 库编译我的程序。
但是,链接器会生成以下警告:
警告 2 警告 LNK4099:在“C:\Program Files\cppunit\cppunit-1.12.1\lib\cppunitd.lib”或“c:\Users\hide1713\Desktop\3d_tank\”中找不到 PDB“vc90.pdb” cpp_pj\bin\vc90.pdb'; 链接对象好像没有调试信息 cppunitd.lib GameUnitTest
有一个 cppunitd_dll.pdb 文件以及 cppunitd.lib。如何告诉链接器在哪里可以找到 CPPUNIT 调试数据库?
谢谢大家。
c++ - 使用 CppUnit 链接测试库
我正在使用 CppUnit 设置一堆单元测试,但遇到的问题是没有一个测试正在运行。该项目分为几个小库,我计划以相同的方式划分单元测试类,然后将它们全部链接到一个单独的测试程序中。问题是,然后测试类在他们自己的库中,除非我明确调用它们,否则它们不会链接到主测试程序中,即我必须放入
runner.addTest( TestClass::suite() );
单独为每个测试类,不能使用 TestFactoryRegistry 的 makeTests() 方法来获取测试列表。如果我只是在顶层目录中将它们全部编译在一起,那么 makeTests() 方法可以正常工作,但如果我能提供帮助,我不想将所有测试类放在一个位置。
CppUnit 文档给出了以下小提示
使用 Helper 宏时的链接问题?
当您创建一个项目并编写它的单元测试套件时,通过使用所谓的帮助宏使工作变得更容易:CPPUNIT_TEST_SUITE_NAMED_REGISTRATION、CPPUNIT_REGISTRY_ADD 和 CPPUNIT_REGISTRY_ADD_TO_DEFAULT。问题是,如果您在 TestFixture 类的源代码文件中使用这些宏(例如 MyTest),并且如果您使用这样的一行
);
在 main.cpp 文件中的 main() 函数中,根本不会有测试运行!
原因很简单,如果您的 main.cpp 中没有未定义的符号,则链接阶段(构建过程的步骤之一)不要在最终的可执行文件中插入目标文件(.obj 或 .o 文件)。
这样,包含 AutoRegister 静态变量实例化的目标代码不是最终可执行文件的一部分,并且无法在 main() 函数中将自己插入到运行器中。
您必须在 main.cpp 中创建一个未定义的符号,以便 mytest.o 文件与 main.o 集成到最终的可执行文件中。
米歇尔·诺拉德犯下的诡计
但没有说如何使这项工作,我只是足够密集,无法自己弄清楚或在网上找到一个例子。
现在我可以为每个库单独做一个可执行的测试,最后我可能会这样做,但我想先让它工作,所以我只需要运行一个测试程序来测试整个事情。有关如何使其发挥作用的任何想法/示例?
c++ - 如何运行 CPPUnit 单元测试
我使用 CPPUnit 编写了一些 c++ 单元测试。
但我不明白如何运行这些。
有没有像 Nunit-gui 这样的工具?
目前我已经在 DLL 中编写并打包了测试。
当我用谷歌搜索时,我发现了这个http://cppunit.sourceforge.net/doc/lastest/cppunit_cookbook.html
但我无法理解它如何从 DLL 中获取测试。
c++ - cppunit 和 xcode 项目的 vtable 问题
我正在尝试构建 zxing iphone 项目并运行用 cppunit-1.12.1 编写的测试套件。我在项目中复制了 cppunit-1.12.1 代码,并将活动 SDK 更改为 10.5,我能够构建 cppunit 和 zxingcore 目标,但是当我尝试构建 zxingcore-tests 目标时,出现以下错误,这似乎与 vtables 有关,并且与库的体系结构类型有关的奇怪警告:
有没有一种很好的格式化方法,基本上是转义格式,而不必在每一行的前面插入一个 >。我使用<pre>
了在预览中效果很好的标签,但在最终渲染中却没有——不尊重格式并切断了文本。一旦有人给我建议,我会修改格式。
....many more of these warnings...
现在的错误
c++ - 重载 operator<< 用于 ostream
我正在使用 CPPUnit 在我的程序中测试一个类。这个类 ( SCriterionVal
) 有点独特,因为它具有许多类型的转换运算符(它本质上是一个动态类型值类)。当我编译使用 测试它的测试用例时,我从 CPPUnit 头文件之一中CPPUNIT_ASSERT_EQUAL()
得到关于“不明确”的编译错误。operator<<
似乎它正在assertion_traits
用我的类型实例化结构,并且该结构有一个toString()
方法可以通过operator<<
在OStringStream
.
我认为这是模棱两可而不是错误,因为 上可用的各种转换SCriterionVal
,其中一些已经定义operator<<
(例如内置类型)。为了纠正这种情况,我在标头中创建了一个SCriterionVal
具有此签名的非成员函数:
我想因为签名应该是完全匹配的,它会解决歧义。没有这样的运气。我在这里做错了什么?我想我可以为我的类型专门化模板assertion_traits
,但我希望能够解决更普遍的问题,即提供一种将我的类放入流中的方法,而不仅仅是迎合测试框架。
c++ - CppUnit 泄漏
用 valgrind 运行我的回归测试我有这样的报告:
我想这是因为添加到套件的测试在主要结束之前没有被删除。
这是我注册测试的方式:
如何取消注册这些测试?
c++ - 如何在 CPPUnit 中关闭单元测试
我(最终)让我的应用程序使用 CPPUnit 进行单元测试,并且我让 CruiseControl.NET 运行测试并显示测试输出。但是,我有几个测试总是失败,所以 CruiseControl 总是将构建标记为失败。有什么办法可以“关闭”或“跳过”或“忽略”这些总是失败的测试?我宁愿不只是在源代码中将它们注释掉,因为它们指出了应用程序中的有效错误,我们目前由于业务原因无法修复,但可能能够在未来的版本中解决。如果可能的话,我希望仍然能够运行测试并查看它们的输出,但只是让 CPPUnit 不将它们视为失败(或者甚至在 CruiseControl 级别忽略它们)。
c++ - 如何使用cpp单元
有没有一本好书或在线网站讨论 CppUnit 的使用,适合初学者?
c++ - C++ 单元测试库
我遇到过 cppunit,但它看起来并不超级好用(也许我看起来并不难,也许是因为 C++ 不像 Java/C# 那样工作)。是否有广泛使用的简单替代方案?
事实上, cppunit是C++ 的标准单元测试框架吗?