问题标签 [boost-unit-test-framework]
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++ - Boost UTF unit_test_main 的命令行参数
我有自己的 Boost Test Runner,我将参数传递给unit_test_main
这样的:
选择测试套件,执行测试用例。但是,在我的程序执行结束时,我得到了内存损坏。有什么原因吗?
我的测试运行器是一个单独的 cpp 文件,其中包含所有测试用例以及unit_test_main
.
编辑:如果我从程序外部传递参数,我忘了添加没有损坏。这很奇怪。
c++ - 运行boost测试项目时出错:testcaseName:没有这样的文件或目录
我正在尝试使用 boost 单元测试套件。
我还链接了 boost_unit_test_framework 库。这段代码编译得很好,但是当我尝试运行 testrunner 时,它失败并出现以下错误:
关于如何解决它的任何想法?
c++ - 使用 icc 编译时,BOOST_AUTO_TEST_CASE 不注册测试用例
谁能解释为什么BOOST_AUTO_TEST_CASE
当我用 icc/icpc 编译时这种用法没有被注册?当我使用 g++ 编译时,它会注册并运行。
这是我使用 ICC 编译的方式 - 请注意,当我运行时,exe 会显示“测试树为空”:
这里是 g++ - 请注意,当使用 g++ 编译时,测试会在框架中注册并运行:
boost-test - Boost单元测试Qt信号
使用 Boost Unit Test 框架对 C++\Qt 代码执行单元测试。
我们基本上使用 BOOST_FIXTURE_TEST_CASE 宏,如文档中所示。对于每个测试,我们创建一个 QApplication 实例来设置事件循环并使测试代码能够使用信号和插槽。
现在我们需要测试是否发出信号。有没有人有这个问题的经验?BOOST_FIXTURE_TEST_CASE 生成的类不包含 Q_OBJECT 并且不是从 QObject 派生的,我猜这将是一个问题。感谢有关此问题的一些意见。
unit-testing - Boost Unit Test Framework 报告的“mks”单元是什么?
在启用所有日志记录(例如test --log_level=all
)的情况下执行时,使用 Boost 单元测试框架创建的单元测试将报告单个测试用例花费了多长时间,并显示如下消息:
那里显示的单位mks让我感到困惑。我知道 Meters-Kilograms-Seconds 是一个公制测量系统,但 Boost 显然只显示时间测量。在这种情况下,单位不应该是ms如果毫秒或μs(或者也许us)如果微秒?mks是不是通常理解为微秒的缩写?
注意,根据Boost 单元测试框架源码,如果经过的时间恰好能被 1000 整除,则显示的单位为ms ,在这种情况下,它会被 1000 整除后才显示。这与mks意味着微秒的想法是一致的。
但真的吗?或者 Boost 在这里是不是很特别?
unit-testing - automake:自动运行单元测试
我正在维护一个 autoconf 包,并希望集成自动测试。我将Boost Unit Test Framework
用于我的单元测试并能够成功地将其集成到包中。
也就是说,它可以通过 编译make check
,但不是运行(尽管我读到make check
编译和运行测试)。结果,我必须在构建繁琐的测试后手动运行它。
Makefile.am
在测试文件夹中看起来像这样:
Makefile.am
在根文件夹中:
运行test/prog
产生输出:
(我认为您不需要我的测试用例的内容来回答我的问题,所以我暂时省略了它们)
那么我怎样才能automake
在每次运行时运行我的测试make check
呢?
c++ - 在 Ubuntu 上提升单元测试动态链接
我正在尝试使用 Boost 的单元测试框架构建单元测试。我想将测试套件库与 Boost 提供的自动生成的测试模块动态链接。这是我一直在使用的基本结构:
test_main.cpp:
lib_case.cpp:
生成文件:
在 Ubuntu 14.04 上测试,所有可执行文件编译和链接都没有错误。
'unittest' 未能执行 'test_lib' 套件,声称设置失败,但 'unittest2' 和 'unittest3' 成功:
现在让人头疼的是:所有 unittest* 都在 Fedora 20 上运行测试套件。
在查看“unittest”的依赖列表时,我确实看到 Ubuntu 版本中没有列出“libcase.so”,但在 Fedora 20 版本中。我已经尝试重新排序依赖项,使用 SO 的绝对路径,以及更改 Boost 的版本(1.54 和 1.55)。没有任何效果。
关于可能阻止“libcase.so”在 Ubuntu 14.04 上而不是在 Fedora 20 上链接的任何想法?我错过了一些神奇的编译器/链接器标志吗?
更新:
Sehe 的评论和回答有助于进一步缩小问题范围。如果我正确理解了 Boost 的动态链接 UTF 实现(至少从 1.54/55 开始),那么该框架提供了一个测试用例管理器单例。每个测试用例都会在构建时自动向管理器注册。
我认为问题在于,无论出于何种原因,在将库链接到二进制文件期间,在 Ubuntu 上进行链接“优化”了用于管理器单例实例的静态全局变量。实际上,尽管共享相同的全局静态变量,它并没有链接两个单例实例。它将它们视为两个独立的实例。
我按照Linux 上跨共享库的多个单例实例中描述的步骤来检查库和二进制文件。与他们的情况不同, -rdynamic 选项不能解决我的问题。
我做了更多的测试,发现这很有趣。如果您预加载 libcase.so 对象,unittest 可以在 Ubuntu 上运行。即使 libcase.so 没有出现在其 ldd 列表中。我觉得这是意料之中的,因为当 unittest 运行时,经理的单例已“预加载”,它将与它链接。
仍然不知道为什么 Ubuntu 不想像 Fedora 那样按预期/预期链接。阅读本教程(特别是“与 Microsoft DLL 比较”部分)让我认为 Ubuntu 遵循 Windows 链接模式。
c++ - Compilation using Boost Test Unit in std c++11
I'm trying to compile a very simple program using Boost Test Unit
If I compile this small program with no parameters,
there's no problem. But, if I try to use C++11 standard,
I get some errors:
(The compiler is in spanish)
I'm using:
Cygwin 64 bits
Cygwin's Boost 1.59
Cygwin's G++ 4.9.3
Any help will be welcome. Thanks. José.-
c++ - Why does this usage of boost test - single header variant crash?
I use the boost Unit Test Framework (version 1.59) using the Single Header Variant. By running the code underneath in Visual Studio 2013 I get a debug assertion. (Expression: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse) Any idea why?
boost - 使用免费功能提升单元测试框架夹具
如这里所暗示的,如何使用免费的固定功能(设置和拆卸):灵活的模型?文档没有显示示例,库测试也不使用这种情况。我正在寻找测试套件的示例。