我想使用 Boost Test 在 Visual Studio 2010 中对我的代码进行单元测试。我已经下载并构建了最新版本的库。
我在这里和互联网上的其他地方阅读了很多关于这个主题的文章,人们似乎建议在您的解决方案中有第二个项目专门用于您的测试。
很好,听起来不错。然而,我在实际设置时遇到了麻烦。我还没有找到关于设置它的最佳方法的明确解释。
我是否需要使用项目引用来使我的单元测试项目引用我的主项目? 如果是这样,我是否还需要在我的单元测试项目的属性中添加我的主项目的 Include & Source 目录?如果是这样,首先使用项目引用的优势是什么?
我是否必须让我的主项目输出一个库供我的单元测试项目链接?同样,我认为项目引用会使这变得不必要,但我似乎并不真正理解项目引用。
如果可能的话,我能否得到一个非常白痴的证明,一步一步地在 VS2010 中与主项目一起设置 Boost Test 单元测试项目?
我是否最好使用此处列出的方法(一个项目,构建测试或实际项目 exe 的不同配置): http://blog.yastrebkov.com/2010/07/boost-test-setup-and-usage.html
非常感谢,
最佳答案
设置 Boost.Test 项目背后没有任何魔法。可能是因为它是一个普通的 C++(可执行)项目,与“普通”应用程序没有什么不同。这就是我所做的:
- 创建一个新的 C++ 项目。我总是选择带有预编译头文件的 Win32 可执行文件。我有一个命名约定,所有使用 Boost.Test 的测试项目都以“tests.boost.testee_name ...”开头
- 在
"stdafx.h"
, 添加<boost/unit_test.hpp>
的包含并定义BOOST_TEST_MODULE
(我总是选择项目名称)。此外,为该项目所需的外部组件添加所有其他包含,例如其他 boost 库、STL header 等。这会大大缩短编译时间。 - 被测试者必须是图书馆(动态或静态)。因此,对所有必需的依赖项“添加引用”。您当然可以测试仅包含 header 的库,在这种情况下不要添加引用。
- 根据 Boost.Test 手册,将源文件添加到您的测试项目。我执行的约定是一个
BOOST_FIXTURE_TEST_SUITE
每个文件。 - 为方便起见,我有一个为 boost 单元测试量身定制的自定义属性表,我将其添加到每个 boost 测试项目中。其中,它包含一个运行测试的构建后事件。
我必须补充一点,最近,我切换到带有 Visual Studio 2012 的 MSTest,这允许以更舒适的方式来管理测试和测试结果。尽管如此,对于软件最重要的部分,我仍在编写 boost 测试,以确保与旧工具集和其他潜在平台的正确性。
干杯,
保罗
关于c++ - 如何在 Visual Studio 2010 中设置单独的 Boost 测试项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14290301/