问题标签 [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 回答
411 浏览

c++ - 在 BOOST TEST 中添加测试套件而不是测试用例

我已经接管了一些 BOOST TEST 代码,这些代码被编写为用于测试媒体文件的静态测试设置。但是,要求是使测试设置动态化,因为要测试的媒体文件的数量会随时间变化,即一天可能有 3 个文件,第二天可能有 15 个文件要测试。

当前设置使用许多 BOOST_AUTO_TEST_SUITE 来构建静态树结构,我的问题是,当我到达测试树中的某个点时,我想将 2 个 test_suite 的 TestSuiteD1 和 TestSuiteD2 添加到测试树中以运行我的动态测试,我只能在该位置添加 2 个 test_case,因此无法在此树元素下方添加更多 test_case (TestCase1 - TestCase3)。我一直在互联网上搜索以下 ::make_test_case 的 ::make_test_suite 版本,但没有运气:

静态 boost::unit_test::ut_detail::auto_test_unit_registrar TestSuiteD1_registrar0 ( boost::unit_test::make_test_case(&fTestSuiteD1_invoker , "TestSuiteD1" ), boost::unit_test::ut_detail::auto_tc_exp_fail::instance()->value() );

我在下面添加了一些示例代码来显示我想要做什么,并在可以添加 test_suite 而不是 test_case 时获得一些反馈:

0 投票
2 回答
641 浏览

c++ - 测试新操作员失败

我创建了一个类,其中的构造函数中有一些的运算符。我已经在构造函数中创建了守卫来管理新的运算符失败,但现在我想测试它。

例如,我有一个这样的构造函数:

是否可以创建一个测试,在其中我可以告诉新操作员失败,以测试我的 catch 代码?

0 投票
2 回答
769 浏览

c++ - 如何编写脚本以使用 boost::unit_test 执行自动测试?

我是 C++ 中自动单元测试的新手。我按照 boost::unit_test 的指令,通过调用unit_test_mainboost::unit_test 中的函数完成了一个测试方案。运行测试程序对我来说没有问题。但是,我在将参数传递给测试函数时遇到了问题。也许,以下代码可以更好地说明我的问题:

如您所见,在这个测试框架中,我要测试的主要函数是Testsub,它依赖于输入参数const std::string &name。但是,我不能通过测试套件函数get_feelfree_test_suite传递任何参数。因此,在这个测试程序中,我编写了另一个测试函数Testabc,其中给出了所有可能的文件测试列表并传递给Testsub。这绝对不是最好的解决方案。我想知道是否还有其他解决方案。我想到了几个解决方案,但我不知道它们是否是好的解决方案:

  • 解决方案 1:尝试找出一种方法将参数 从主函数 ( )传递给get_feelfree_test_suite 。int main( int argc, char* argv[]之后,编写一个脚本来多次运行该程序。在 Windows 中,一种可能的脚本是 .bat 脚本。对于这个解决方案,我不知道如何实现它。
  • 解决方案2:编写一个列表文件,其中给出所有可能的输入文件测试名称,然后在程序中读取该列表文件。这更容易实现。

我还听说 Python 可以很容易地集成到测试框架中,但我对此一无所知。无论如何,我对所有可能的解决方案持开放态度,谢谢!

0 投票
2 回答
729 浏览

c++ - 在 Eclipse 中哪里可以找到解析的 Boost.Test 输出

0 投票
1 回答
152 浏览

c++ - 使用 boost::phoenix 适配一个 BOOST_CHECK 宏

在使用 c++ 11 进行测试期间,我使用了以下构造:

我目前正在研究一个不使用 C++11 的项目,我是否正在寻找一种方法来生成类似的 lambda 表达式,而不必创建单独的函数/仿函数。

我了解boost::phoenix创建 lambda 的基本用法,但我想不出一种方法来创建能够调用boost::test宏的 phoenix lambda。

我能想到的最好的是:

不幸的是,这种方法会丢失检查失败的行号信息,因为宏 BOOST_CHECK_EQUAL 报告的是宏的行号,而不是std::for_each调用的行号。

有没有更好的方法来创建涉及使用“boost::phoenix”的宏调用的 lambda?

0 投票
1 回答
345 浏览

c++ - Boost 单元测试在 Visual Studio 2012 中引发异常

我最近将我的笔记本电脑升级到了 Windows 8,以便我可以为 W8 和 WP8 进行开发。我有一些使用 Boost.Test 进行单元测试的 Visual Studio 2010 创建的项目。我尝试将项目转换为 VS2012 项目,但遇到了问题,所以我只是使用与以前相同的源代码创建了新的 VS2012 项目。但是,每个单元测试套件在我运行它时都会引发异常。我已经对其进行了调试,发现它在尝试make_reportresults_reporter.ipp. 违规行是

在代码的某处,有一个map对象有一些不好的内存,因此出现了异常。我正在使用 Boost 1.50.0。我还尝试了最新版本 1.52.0,但结果相同。VS2012 是否存在错误,或者是否有一些我不知道的设置/配置,或者在 Windows 7 与 8 上开发的差异?

编辑

这是一个示例测试,它在我的 VS2012 和 Boost 1.50.0 环境中引发异常:

0 投票
1 回答
18657 浏览

c++ - 升压测试 - “未定义的参考”错误

我有两个简单的文件:

亚军.cpp:

和 test1.cpp:

要编译,我正在使用:

我收到以下错误:

我在 MinGW 上使用 g++ 4.7.2,boost 1.52.0。

仅尝试编译时,我会遇到相同的错误test1.cpp-“多个主要定义”除外。

我仔细阅读了官方文档很长一段时间,但是关于链接选项的细节很少。当我编译 boost 库时,除此之外unit_test_framework,我还得到了prg_exec_monitorand test_exec_monitor; 也许我应该以某种方式链接这些?我尝试了很多组合,但都导致了某种未定义的引用链接器错误。

boost生成的库的完整列表-我将它们全部放在项目根目录中:

0 投票
3 回答
8745 浏览

c++ - 升压测试中的命令行参数

我希望为我的 boost 测试处理额外的命令行参数。我正在使用它来自动测试功能,我需要指定服务器名、用户、密码等内容...

当我传递我的测试可执行额外命令参数时,除了已经编码到整个单元测试中的参数之外,我得到一个堆损坏错误。

我已经左右搜索过,仅仅找到访问这些参数的位置就已经够难了。现在看起来我可能还需要先设置它们,否则命令行解析器会做一些愚蠢的事情。

任何人都知道如何添加命令行参数来提升单元测试?

编辑——最小的例子

调用它:exename hello

这似乎与任何事情无关。这个问题应该删除。我无法谈论我认为发生的事情,但我认为这可能与此有关:

http://forums.codeguru.com/showthread.php?506909-Boost-invalid-block-while-overloading-global-new-delete

**任何看这里的读者都知道这里的问题和答案没有用,这一点非常重要。我遇到的问题非常具体到我的环境,我无法谈论。我真的希望模组和人们停止删除此警告或让我删除此警告,但事实就是如此。不要被这只野鹅误导到黑暗的小巷里。**

0 投票
4 回答
2753 浏览

c++ - 从 Visual Studio 2010 运行 BOOST 单元测试

我刚刚开始使用QuantLib项目。定义了很多 BOOST 单元测试,因此问题是:是否有一种简单的方法可以从 Visual Studio 有选择地运行这些测试(并查看结果)?

到目前为止,我只在 .Net 语言中使用过单元测试,如果你使用 MsTest,你可以使用内置的测试运行器,或者其他框架的一些附加组件(我使用 Resharper 和 TestDriven.NET)。在那里你可以选择你运行的测试,你可以在附加的调试器的情况下运行它们(不幸的是,这有时很有用)。在非托管 C++ 中是否有类似的 BOOST 测试插件?

0 投票
2 回答
3076 浏览

unit-testing - Boost Test:如何编写参数化测试用例

我有一个提升测试用例。无论参数如何,都会执行此测试用例的大多数行。但是有些部分是根据提供的参数执行的。我想避免编写两个单独的测试用例,它们几乎相同,除了一些小部分。所以我需要使用类似下面的方法来创建参数化测试用例:

有没有其他方法可以更方便地实现我的目标?我可以找到BOOST_PARAM_CLASS_TEST_CASE宏,但我不确定它在这种情况下是否相关。