问题标签 [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.
c++ - BOOST.TEST 在 dll 中使用 BOOST 测试用例并在 exe 中使用 runner 时遇到问题
我正在使用 Boost.Test 进行单元测试。我想将所有测试代码放在一个单独的 dll 中,这样测试代码就不会被发布,我的生产代码也不会膨胀。
为此,我考虑在 dll 中有手动测试用例并让 dll 导出一个方法
从我的测试运行器中,我可以在我的 init_unit_test_suite 中调用这个方法
但是测试用例没有被拾取。但是,我在本地测试运行器中的测试用例正在被拾取。
我正在与 BOOST 静态库链接并通过定义拥有自己的主库
在我的测试跑步者中。
这个组合有什么问题?我怎样才能在单独的 dll 中实现测试用例的隔离,并且还有一个外部测试运行器?
编辑:我用来调用测试用例的命令行是:
我用上面的命令行得到的错误是:
c++ - 有没有办法在不重新编译的情况下控制 boost output_test_stream “记录与检查”的行为?
我正在使用 Boost.Test 类output_test_stream
来验证我的应用程序是否提供了预期的输出。此类提供了一种简单的方法,通过调用该方法来比较文件中的输出数据与已知良好的记录数据match_pattern()
。这是我的使用方法:
所需的输出在文件 test_output_ref.txt 中。调用match_pattern()
将ostrg
数据与文件中的数据进行比较。如果变量pattern_test
为假,则调用match_pattern()
将改为将数据保存ostrg
到 ref 数据文件test_output_ref.txt
中。
我使用它的方式是,我首先使用CREATE_TEST_PATTERNS
定义的宏进行构建,然后运行测试程序(测试作为构建后步骤运行),将输出收集到一个文件中,目视检查输出文件以确保输出是正确,然后我重新构建未定义的测试CREATE_TEST_PATTERNS
程序。在此模式下,测试将先前记录的预期结果与测试运行生成的结果进行比较。到目前为止,一切都很好。
我的问题是:有没有一种方法可以控制记录/检查行为而match_pattern()
无需重新编译测试程序?
c++ - Setting the library path for Boosts tests with CMake in Windows
I've started a little project on GitHub for an OpenSceneGraph
plugin. Here, I plan on learning how to setup projects with CMake
, unit testing with Boost.Test
and continuous integration, with Travis-CI
.
It has this structure:
I have two machines: my laptop, with Linux Mint 16
and g++ 4.8
, and my work computer, with Windows 8.1
, the MinGW
suite and g++ 4.5
.
The project (development branch!) builds fine with make
, but afterwards, when I try to run the tests with make test
in Windows I always end getting these errors:
and in the terminal:
Whereas in Linux (tried in Linux Mint 16
and in the Travis-CI
machine, it works).
The "root" CMakeFile
:
The CMakeFile
for the test:
I'm trying to tell CMake
to use the newly-generated osgGML
library in the build directory when linking the test executable (I have checked, libosgGML.dll
is in ${CMAKE_BINARY_DIR}
.
In this version of the file, I added the rpath
to the library. In a previous one, aside from -Wl,-rpath,<library_dirs>
I also specified the -L<library_dirs>
right after that.
I've tried to link directly the dll's too, but nothing worked.
How can I tell the test executable to "find" the libraries in their respective directories, instead of copying them to the executable dir?
c++ - Boost.Tests 入口点在哪里?
我正在使用 JetBrain 的 CLion 并尝试运行一些增强测试,但它们不会。这是我的代码:
和我的 cmake 文件:
问题是输出将只是“主要”。并且测试不会启动。我想我不需要“主要”功能。它应该是自动创建的。但是如果我删除它,我会收到以下错误:
有人可以帮帮我吗 ?
c++ - Boost.Test 显示测试持续时间
我正在使用 Boost.Test (1.60.0) 来测试我的项目。为了确定最耗时的测试,我想知道每个测试的测试持续时间(以毫秒为单位)。所有测试消耗的总时间也会很好。
Boost.Test 有这样的功能吗?如果不是,我如何自己实施这样的时间测量?
c++ - Boost.Test 检查指针是否为空
我有以下测试:
编译失败是因为
/xxx/include/boost/test/tools/detail/print_helper.hpp:50:14: 错误:'operator<<' 的重载不明确(操作数类型是'std::ostream {aka std::basic_ostream}' 和' std::nullptr_t')
出了什么问题,我应该如何测试空指针?
c++ - C++ Boost.Test - 应该在哪里创建类对象来测试它的方法?
我正在做使用 Boost 来测试代码的 exercism.io C++ 挑战。我有 3 个文件,bob.cpp
、bob.h
和bob_test.cpp
(都在下面)。没有课程,我可以让测试运行良好。但是一旦我需要测试一个类方法,比如bob_test.cpp
尝试测试的 in ,bob::hey([arg])
我就会得到错误:
所以我显然需要在bob
某个地方实例化(例如:bob bob;
......我没有选择名称)但我就是不知道在哪里做。Boost 测试框架提供了它自己的main
功能(这意味着我不提供),所以我不能在那里做,我有点期望 Boost 会实例化对象本身,但它似乎没有。我尝试插入bob bob;
并bob_test.cpp
导致bob.cpp
相同的错误。我的问题是,我应该在哪里实例化一个bob
可以用于的对象bob_test.cpp
?作为一个 C++ 菜鸟,我的直觉说它应该在 . bob_test.cpp
,但我也很有信心我不应该编辑那个文件。
鲍勃.cpp
鲍勃.h
bob_test.cpp(仅提供导致错误的第一个测试(简化),实际测试略有不同,我只是想让设置正常工作)
c++ - Boost.Test - 如何检查交叉点上的两个向量?
我正在寻找检查两个向量是否相交的最佳方法。
一个嵌套循环,如
可以完成这项工作,但它看起来不像 Boost.Test-ish 方式。看一下Boost.Test都没有太大帮助,因为唯一预定义的测试用例是BOOST_CHECK_EQUAL_COLLECTIONS
更新
c++ - 在 PVS-Studio 中的 BOOST_REQUIRE 之后将变量标记为非 NULL
我正在使用 PVS-Studio 来分析我的测试代码。通常有以下形式的构造
但是我仍然收到V522 There might be dereferencing of a potential null pointer 'animal'
最后一行的警告。
我知道将函数标记为“不返回 NULL”是可能的,但是否也可以将函数标记为有效的 NULL 检查或使 PVS-Studio 以其他方式意识到animal
不能为 NULL 之后BOOST_REQUIRE(animal);
?
assert
如果首先通过任何风味检查指针,也会发生这种情况。
c++ - 带有 CLion 的 Boost.TEST:“测试框架意外退出”
我在 mac os mohave 上使用 CLion。我试图将 Boost.TEST 添加到我的 c++ 项目中,但 IDE 抛出“测试框架意外退出”。
这是我的 CMakeLists:
和一个简单的测试:
jetbrains 网站上的说明是关于使用 Boost.TEST 的虚假说明,我在网上找到的针对此问题的所有修复程序都已过时。
我使用与自制软件一起安装的 Boost v.1.67.0。
控制台输出:
测试于 09:48 开始 ... .../sequences --run_test=test --logger=HRF,all --color_output=false --report_format=HRF --show_progress=no 你好,世界!进程以退出代码 0 结束
感谢所有帮助和建议!
感谢帮助。我最终为测试创建了一个模板项目。然后我使用实际代码将此项目复制到我的项目中,并将 add_subdirectory( name_of_the_directory_with_boost_test_project ) 添加到 CMakeFile 中。
之后,您将在 CLion 中获得“运行所有测试”功能。