问题标签 [boost-test]

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 投票
3 回答
1639 浏览

c++ - 旧版本的 boost.test 问题

我正在尝试boost.test在带有 boost 1.33.1 的远程系统上使用。在我的电脑上,来自http://www.boost.org/doc/libs/1_42_0/libs/test/doc/html/tutorials/hello-the-testing-world.html的这个小例子有效:

但在远程系统上,该文件unit_test.hpp不存在。在我的电脑上,文件unit_test_framework.hpp很简单:

它存在于主系统上。所以我尝试将包含更改为:

但编译器说:

这是什么?如何解决?

0 投票
1 回答
2155 浏览

c++ - Boost.Test 对静态库的测试

我正在使用 Boost.Test 进行单元测试。

由于几个原因,我想在不同的静态库上编写单元测试用例。

问题是当我这样做时,自动注册器不起作用。

例如,如果我有类似的东西:

然后,如果我将 main.o 与 libFooTests.a 链接并执行最终的二进制文件,它会说:

Test setup error: test tree is empty

如果我直接从源代码创建二进制文件,一切都会正常工作,但我无法使用自动注册在静态库中编写单元测试。

我能做到这一点吗?

我需要定义一些宏吗?我需要从 libFooTests.a 导出一些符号?

谢谢!

0 投票
3 回答
2847 浏览

c++ - 将 QTest 与其他框架进行比较

您能否将流行的 C++ 单元测试框架与 Qt 的 QTest 进行比较?

(cppunit,升压测试,谷歌测试等。)

有哪些优点缺点?谢谢你。

注意:GUI 测试对我们来说不是很重要。

0 投票
2 回答
5742 浏览

unit-testing - 升压测试无输出

我正在尝试使用 boost 测试库实现单元测试。我首先阅读了 boost 站点上的手册。在此之后,我在我已经存在的项目之一中制作了一个简单的测试程序。我面临的唯一问题是我无法看到测试结果。我确定我做错了:)但我无法弄清楚。以下是我的项目的详细信息

我为此使用了 Visual Studio8:我有一个名为MyProject.sln的解决方案

与其他项目一起,我有一个名为MyDLL.vcproj的项目(该项目的类型是DLL

与 MYDLL proj 中的其他文件一起,我添加了一个新的 cpp 文件名MyTest.cpp,该文件包含以下代码:

我在 MYDLL 项目属性表中进行了以下更改

我阅读了手册中给出的所有编译细节,但仍然无法获得输出。理想情况下,我想将 Boost 测试用作独立库(UTF 的动态库变体)。

0 投票
2 回答
2165 浏览

c++ - 使用 Boost::Test 测试 DLL?

我正在用 C++ 开发一个 DLL,并希望使用 Boost 测试库对该 DLL 执行单元测试。我彻底阅读了 Boost 测试手册,但由于我是新手,所以我有以下问题:

我应该在开发 DLL 的同一个 VC 项目中添加测试类吗?理想情况下,我想这样做,但我很困惑 DLL 没有main(),另一方面,Boost 测试需要自己main()执行。那么在这种情况下,Boost 测试输出到哪里去了呢?(事实上​​,我实际上实现了这个并且没有看到任何输出:(并且几乎花了两天时间解决问题,但没有成功)

问候,

詹姆斯。

0 投票
1 回答
4985 浏览

c++ - 如何设置要运行的 Boost 单元测试

我正在尝试使用 boost-test,尤其是 boost 单元测试。

我显然不明白 main 函数是如何生成和调用的,教程中的所有内容都是定义一个模块并编写一个测试

#define BOOST_TEST_MODULE EnfTraderTest

BOOST_AUTO_TEST_CASE(CalculateExpectedPriceTest){BOOST_ERROR("Oops");}

但是,我该如何让我的程序运行这个测试呢?我已经有了 main 函数,我想从我的 main 函数中决定是否运行测试。

0 投票
2 回答
1487 浏览

c++ - Boost.Test 错误信息不再显示在 VS2010 的错误列表中

我正在为原生 C++ 项目使用 Boost.Test 单元测试框架。一切正常,但升级到 Visual Studio 2010 后我遇到了一个问题:在测试作为构建后步骤运行后,错误列表中不再显示有关失败测试的消息。这是一个遗憾,因为 Boost.Test 与本机 C++ 项目的组合最接近(尽管仍然很远)我习惯于从单元测试托管项目中获得的舒适感。我在这里使用 Boost.Test 的作者推荐的配置。任何人都可以帮助解决这个轻微但有点安慰的问题吗?

问候,

保罗

0 投票
4 回答
1201 浏览

c++ - CoInitializeEx 用于 boost::test::unit_test

前几天,我决定我需要了解 Windows 平台上的 C++ 测试驱动开发(使用 Visual Studio 2010 Premium)。

在决定尝试 boost 的单元测试框架之前,我环顾四周。我应该说我选择了 boostpro.com 的版本(如果我没记错的话,当前版本是 1.44)。这有一个静态库的构建,所以我不在我的测试中使用 DLL。

Boost 的单元测试文档谈到了将代码与测试套件分开,这似乎是合理的。但是你必须处理从你现在独立的测试套件项目中引用你的代码的问题。

所以我有一个我想测试的库项目(但我仍然不确定如何编写可以引用 .exe 项目的测试......)

所以我在我的解决方案中创建了一个单独的项目,称为单元测试。我添加了以下代码:

我静态链接到我的“崩溃”库项目输出,然后我添加了以下构建后事件以获取构建后的报告:

构建后的输出如下所示:

我预计 EncoderAvailable 测试会失败,因为我还没有为线程初始化 COM 单元。我假设我不能使用自动测试,而是需要用我在主函数中手动定义自己的测试替换自动测试,并在主函数中调用 CoInitializeEx()。

我在这里读到你可以定义入口点并注册你自己的函数,所以我试了一下:

这是构建输出:

该测试失败在第一个测试 LameEncoderAvailable 上失败,这是以下简单函数:

谁能告诉我在哪里进行 CoInitializeEx() 调用的正确位置-我认为我不应该每次测试都这样做一次-每个线程只能执行一次...

至于测试 exe 项目,我想你可以指定一个单独的 main.cpp(testmain.cpp 或其他东西)并从构建中排除你真正的 main.cpp 以访问你的代码。如果有人知道一个更优雅的解决方案,我很想听听它......

0 投票
1 回答
938 浏览

c++ - 用于获取用户输入的函数的 boost 测试用例

我有一个通过 std::cin 接收用户输入的函数:

并通过将其与正则表达式匹配来创建相应的数据结构。然后该函数返回此数据结构。

我正在使用 boost.test,我想创建一个单元测试来检查输出数据类型在给定一些输入的情况下是否正确。但是我不知道该怎么做,因为输入没有作为参数传递给函数。

编辑:有没有一种简单的方法来创建一个通过标准输入为函数提供字符串的 boost 测试用例?

0 投票
1 回答
8188 浏览

c++ - 在 boost::test::unit_test 中发现内存泄漏

这个问题是上一个关于 boost::test::unit_test的问题的延续。

我已经编写了一个单元测试并构建了单元测试。这是构建输出:

我从经验中知道,描述内存泄漏的输出来自使用CRT 内存泄漏检测

通常,要检测分配在源代码中的位置,您可以将以下内容添加到入口点的开头:

但是, boost::test::unit_test 定义了它自己的入口点,阻止我添加这些行。我尝试将这些行添加到夹具中,但没有成功。我也尝试在测试代码中添加这些行,但同样没有成功。当我尝试这些修改时,我得到以下输出:

该 -ve 数字转换为 0x80000003 (一个或多个参数无效)。

谁能建议我如何检测我的源代码/测试中这两个内存泄漏可能在哪里?

对于好奇,这是我的测试: