c++ - 如何在 Visual Studio 2010 中设置单独的 Boost 测试项目

标签 c++ unit-testing boost

我想使用 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++(可执行)项目,与“普通”应用程序没有什么不同。这就是我所做的:

  1. 创建一个新的 C++ 项目。我总是选择带有预编译头文件的 Win32 可执行文件。我有一个命名约定,所有使用 Boost.Test 的测试项目都以“tests.boost.testee_name ...”开头
  2. "stdafx.h" , 添加 <boost/unit_test.hpp> 的包含并定义 BOOST_TEST_MODULE (我总是选择项目名称)。此外,为该项目所需的外部组件添加所有其他包含,例如其他 boost 库、STL header 等。这会大大缩短编译时间。
  3. 被测试者必须是图书馆(动态或静态)。因此,对所有必需的依赖项“添加引用”。您当然可以测试仅包含 header 的库,在这种情况下不要添加引用。
  4. 根据 Boost.Test 手册,将源文件添加到您的测试项目。我执行的约定是一个 BOOST_FIXTURE_TEST_SUITE每个文件。
  5. 为方便起见,我有一个为 boost 单元测试量身定制的自定义属性表,我将其添加到每个 boost 测试项目中。其中,它包含一个运行测试的构建后事件。

我必须补充一点,最近,我切换到带有 Visual Studio 2012 的 MSTest,这允许以更舒适的方式来管理测试和测试结果。尽管如此,对于软件最重要的部分,我仍在编写 boost 测试,以确保与旧工具集和其他潜在平台的正确性。

干杯,

保罗

关于c++ - 如何在 Visual Studio 2010 中设置单独的 Boost 测试项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14290301/

相关文章:

c# - 信号量实现

c++ - 无法使用()创建原子

c++ - 如何通过 boost spirit 提取 std::string 对象

c++ - 向 Boost 提交库的提示?

c++ - 有没有办法将 boost::json::serializer 切换为美化输出?

c++ - 在构造函数中混合可变参数模板和初始化列表

c++ - 继承时预期结果不起作用?

ReactJS 测试 - fsevents 不是函数

unit-testing - 为什么我的 ViewModel 不应该依赖于服务的具体实现?

javascript - 如何使用 Jest 测试是否使用定义的参数( toHaveBeenCalledWith )调用了函数