问题标签 [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 投票
1 回答
129 浏览

c++ - 在没有主方法调用的情况下运行 Boost.Test

我正在尝试测试我的部分代码。我写了以下test.h文件:

如果我运行测试,我的应用程序的 main 方法会被调用,并且由于缺少命令行参数,它会终止。我只想按原样运行测试套件并成功,因为BOOST_CHECKontrue应该是通过的测试。一旦这工作,我会从我的代码库中一一添加对函数的调用以进行回归测试。这可能吗?如果是,如何?

这篇文章建议将以下定义添加到test.h文件顶部,但它不适用于跳过主方法调用:

0 投票
1 回答
97 浏览

c++ - Boost.Test 的数据测试用例真的需要 C++11 吗?

我在特定的企业环境中工作,目前没有 C++11 基础架构。最近我开始编写单元测试并决定使用 Boost.Test 框架,因为 Boost 以其可移植性和企业就绪性而闻名。虽然一般的 BOOST_AUTO_TEST_CASE 工作得很好,但我发现数据集测试(BOOST_DATA_TEST_CASE)最终boost/test/data/monomorphic/fwd.hpp包括<tuple>无条件包含在内。DATA_TEST_CASE 是否确实需要 C++11?有没有办法使用 BOOST_DATA_TEST_CASE 并利用 Boost 的内置元组和其他附带的库来符合 C++03 标准?

0 投票
1 回答
306 浏览

c++ - 如何制作 boost.Test 日志/打印标准类型

有什么方法可以制作升压测试打印(在代码中:BOOST_TEST)std类型?重载operator<<必须在stdADL 可以找到的命名空间中,并且std禁止扩展。boost 的文档中唯一提到的是关于 UDT,该解决方案还依赖于 ADL,因为它强调在boost_test_print_type与 UDT 相同的命名空间中添加自定义函数。

关于建议的副本

我不知道。在副本中提出的薄包装将如何工作?这是否意味着我必须在每个断言之前在每个测试用例中转换为包装器,而不是直接使用标准类型(可选)?如果是这样,那不是我想要的和不想要的!

0 投票
0 回答
88 浏览

c++ - 当 boost 自动测试用例名称中包含逗号时,boost 会抱怨:“测试设置错误:没有匹配过滤器的测试用例或所有测试用例都被禁用”

使用 boost::mpl 时,测试用例模板没有运行(我假设是因为逗号)。

该代码在 boost 1.55 中工作,因为正在使用的测试用例名称是模板的错位名称。但是升级到 boost 1.64 的 demangled 名称现在被用作测试用例名称 IE:

代码使用这个模板

代码现在声明了一个包含两个实例化模板的 mpl 容器。

该代码使用 BOOST_AUTO_TEST_CASE_TEMPLATE 自动注册测试用例。

现在测试用例将被命名:

由于测试用例名称中包含逗号,因此 boost.test 遇到了问题。

这段代码在 boost 1.55 中可以正常工作,因为 boost 使用实例化模板的错位名称分配了测试用例名称(这是一个长而奇怪的名称,但没有逗号)

有任何想法吗?我查看了 boost 文档,似乎没有任何关于在 mpl 中使用多个参数模板进行 boost 测试的消息。

0 投票
1 回答
168 浏览

c++ - Boost.Test 检查结构是否相等

我是 Visual Studio 2017 上 Boost.Test 的新手。

我正在尝试使用以下测试来测试一种方法:

JulianToGreenWich从 .返回一个tm结构ctime

但是我做错了,因为我收到以下错误:

错误 C2678 二进制“==”:未找到采用“const Left”类型的左侧操作数的运算符(或没有可接受的转换)

错误 C2338 类型必须实现 operator<< 才能打印

错误 C2679 二进制“<<”:未找到采用“const T”类型右侧操作数的运算符(或没有可接受的转换)

如何测试两个值day1和结果JulianToGreenWich是否相等?

0 投票
1 回答
36 浏览

c++ - Boost.Test 如何测试?

Boost.Test 框架本身是否有任何测试?Boost 似乎对其他库有很多回归测试,当然是用 Boost.Test 编写的。但是如何确保测试框架本身是正确的呢?

0 投票
1 回答
237 浏览

c++ - 如何使用 vstest.console.exe 运行 BOOST 测试?

我正在使用 BOOST 测试来测试我的 C++ 代码。测试通常如下所示,并且测试项目构建为 exe。为了收集代码覆盖率信息,我希望能够使用 vstest.console.exe 运行我的测试,这样我就可以尝试使用它的 /Enablecodecoverage 选项。

我一直遇到“.exe 中没有可用的测试。确保测试发现器和执行器已注册并且平台和框架版本设置正确,然后重试。” 在这一点上我一无所知。

使用--diagnostic选项运行时,我在生成的文件中看到了这一点:

“C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\Extensions\TestPlatform TpTrace 警告:0 : 13924, 3, 2020/10/15, 14:33:27.926, 1817417335033, testhost。 exe,TestPluginDiscoverer:无法从文件“C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\Extensions\TestPlatform\Extensions\Microsoft.VisualStudio.Coverage.Interop.dll”加载扩展。跳过测试此文件的扩展扫描。错误:System.BadImageFormatException:无法加载文件或程序集“Microsoft.VisualStudio.Coverage.Interop”或其依赖项之一。尝试加载格式不正确的程序。文件名: 'Microsoft.VisualStudio.Coverage.Interop'"

我机器上的 Visual Studio 安装程序确认 Boost.Test 测试适配器已安装。

0 投票
2 回答
152 浏览

c++ - 无法使用 Apple Silicon 上的 Boost.Test 在 cmake 项目中构建测试套件

我正在关注JetBrains在 Apple Silicon 计算机上的教程。我用 MacPorts (sudo port install boost) 安装了 boost,版本是 1.71。tests.cpp 文件的构建失败并出现以下错误:

我在tests.cpp中的代码:

我在 test/CMakeLists.txt 中的代码:

我在 cmake-build-debug 文件夹中有库,并且在主 CMakeLists.txt 中包含了测试子项目。

0 投票
0 回答
15 浏览

c++ - 用模拟版本替换原始界面进行测试

我想通过包含指向作为私有成员的指针来为A依赖于另一个类(例如)的功能的类(例如)实现几个测试。BB

这是我拥有的代码结构的一个最小且非常简化的示例:待测类A

它使用类的功能B

在现实中AB要复杂得多,由单独的声明和定义文件组成,并且都继承自它们相应的接口(因此有以下文件IA.h, A.h,A.cppIB.h, B.h, B.cpp)。

在我的测试环境中,我想从 替换复杂的东西B,我创建了它的模拟,BMock它实现了具有相同名称但以非常简单的方式的函数:

在主测试文件中,我A通过调用类的方法来测试类的实例:

所以我不太确定如何解决的主要问题是,在调用objectA.funcA1()MainTestFile.cpp,它将使用原始类中的功能B(因为它包含相应接口的标题)。

但是,我的目标是以某种方式用B来自BMock.

我使用 Boost.Test 框架进行测试,因此特别欢迎使用这个特定库的解决方案。但我当然也对其他可能的解决方案持开放态度。先感谢您!

0 投票
1 回答
75 浏览

c++ - 为什么使用 boost.test 在 CLion 中“测试框架意外退出”?

我正在做一个小项目。我尝试使用 Boost.Test 添加一些单元测试。这是一个简单的测试测试:

这是 CMake:

一切都在编译,但是在运行测试时出现此错误。我不知道我在哪里犯了错误。

我在用着:

  • 克莱恩
  • 提升 1.76
  • 明格 8.1