问题标签 [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++ - 对 DLL 中的非导出类进行单元测试
我们使用 Visual Studio 2008 开发 C++ 应用程序并使用 Boost.Test 进行单元测试。目前,我们有一个单独的解决方案,其中包含我们的单元测试。
我们在核心解决方案中的许多项目都会生成 DLL。我们的测试覆盖率有限,因为我们无法测试非导出的类。
关于如何测试这些,我有两个想法:
- 导出一切
- 将测试放在 DLL 中(相同的项目和解决方案)并使用 Boost.Test 的外部运行器
我不完全确定缺点是什么。上面的数字 1 破坏了模块级别的封装,而数字 2 可能会导致更大的 DLL,除非可以仅在某些配置中包含测试代码。
那么,上述方法是否存在严重的缺陷,或者您能想到其他解决方案吗?
c++ - Boost Test Library 使用不同的“参数”运行套件两次
我有一套可以在几种不同模式下运行的测试。除了一些全局配置或夹具配置外,测试用例代码是相同的。
boost 测试库中是否有某种方法可以实现这一点,而不必为所有单独的测试用例编写包装器?
请注意,这不是命令行开关,它应该是同一执行的一部分。
c++ - 在手动定义的套件树中提升测试用例和套件装置
在 Windows x86、Android TI 2.2 上使用 Boost 1.46.1
我已经定义了自己的测试套件树,因为我需要用户选择测试的顺序。虽然我知道测试应该是独立的,但这是一个要求。测试套件树是使用我自己的test_suite* init_unit_test_suite(int, char**)
.
对于自动化测试用例和自动化测试套件,有 Boost 宏:BOOST_FIXTURE_TEST_CASE
和BOOST_FIXTURE_TEST_SUITE( suite_name, F )
. 这些宏将函数注册到framework::master_test_suite()
,在这种情况下这是不希望的行为。
全局夹具 ( BOOST_GLOBAL_FIXTURE(fixure_name)
) 在手动测试套件定义中不受影响。
我想在 Boost Unit Testing Framework 中使用固定装置来手动定义测试套件和用例。一个整洁的方式。
有一些解决方法:
- 测试套件夹具 - 可以定义为其子套件/案例中的第一个和最后一个测试。然而,这会影响测试结果并作为单独的测试,这并不是一个很好的解决方案。
- 测试用例夹具 - 通过在测试用例函数周围包装一个作用域实例。
有没有其他更清洁和更好的解决方案来解决我的问题?我真的没有资源可以深入研究 Boost 库。另一方面,我不想显着降低我这边代码的质量和可读性。
问候, LK
单元测试框架:用户指南
http://www.boost.org/doc/libs/1_46_1/libs/test/doc/html/utf/user-guide.html
unit-testing - 使用 Boost 单元测试的问题
我想开始使用 Boost Test 库为我的应用程序创建测试。
按照我在http://www.boost.org/doc/libs/1_47_0/libs/test/doc/html/tutorials/new-year-resolution.html找到的教程,我开始了我的测试课程。
所以,我为我的测试创建了一个类,简单的 .cpp 就是这个
好吧,我知道我必须做一些比 return true 更聪明的事情,但这不是问题。问题是它无法编译。我认为该库已更正加载,因为如果我只编译前两行我没有错误,如教程页面中所述。
如果我尝试编译它,我会从 GCC 获得以下错误输出:
我是 Boost 的新手,所以我不知道我必须做什么。我做错了什么?我认为我已经完成了相同的教程步骤,或者没有?
感谢您的回复。
c++ - 使用 boost::test 进行内存泄漏检测
我尝试使用行号启用 msvc 内存泄漏检测,如下所示:
我试图设置预处理器定义
_CRTDBG_MAP_ALLOC
手动在项目属性中,但我只得到这个:
没有行号。我还尝试使用 BOOST_TEST_NO_MAIN 手动定义 main 并自己转储,如下所示:
但也没有任何成功。如何才能做到这一点?
c++ - boost测试库:多重定义错误
我正在尝试在 QTCreator for Windows 中测试我已经完成的库(微积分)。
我已经创建了一个主文件,并在一个单独的文件中创建了一个用于测试的类。如果我编译http://www.boost.org/doc/libs/1_47_0/libs/test/doc/html/utf/user-guide/test-organization/manual-test-suite.html中的示例,它可以工作,因此在http://www.boost.org/doc/libs/1_47_0/libs/test/doc/html/utf/user-guide/test-organization/manual-nullary-test-case.html中找到的示例也有效。
但是当我尝试编译我的项目时,我有很多(超过 500 个)多个定义的错误。您可以在下面找到我的文件。如您所见,我还尝试对 boost 标头进行一些防护,但它不起作用。我究竟做错了什么?
主文件
testcalculus.h
testcalculus.cpp
编译输出
c++ - 提升测试链接
我想Boost test
在我的项目中使用。
我在我的项目中使用 cmake,所以我写了一个简单CMakeList.txt
的包装它:
所以,cmake 在这里工作正常。在编译过程中出现了问题:
链接 CXX 可执行文件 ../../bin/UnitTests
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.1/../../../../lib/crt1.o:在函数
_start': (.text+0x20): undefined reference to
main'collect2:ld返回1退出状态
这是测试文件夹 ( LogManagerTest.cpp
) 中的唯一文件:
这里有什么问题?
c++ - boost.test 标头之间的区别
boost/test/unit_test.hpp
标头和有什么区别boost/test/included/unit_test.hpp
?两者似乎都适用于我的项目,我不确定应该使用哪个。
xml - boost::test,junit XML 输出
我为 C++ 中的单元测试选择了一个框架 最好的(对我来说)解决方案是 boost::test,因为它在 boost 中:)
但是有一个问题 - 框架必须能够生成 JUnit 格式的 XML 输出,但默认情况下 boost::test 可以生成人类可读或自己的 XML 格式
- (据我了解)我可以编写自己的(自定义)生成器
所以问题是:有人知道让 boost::test 以 JUnit 格式生成报告的最快方法吗?