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

时间:2013-01-12 04:40:30

标签: c++ unit-testing boost

我想使用Boost Test在Visual Studio 2010中对我的代码进行单元测试。我已经下载并构建了最新版本的库。

我在这里和互联网上的其他地方已经阅读了很多关于这个主题的内容,人们似乎建议在你的解决方案中为你的测试提供第二个项目。

很好,听起来不错。但是我实际上没有设置它。我还没有找到解决这个问题的最佳方法。

我是否需要使用项目参考来使我的单元测试项目参考我的主项目? 如果是这样,我还需要添加Include&我的主项目的源目录在我的单元测试项目的属性中?如果是这样,首先使用项目参考有什么好处?

我是否必须让我的主项目输出一个库以供我的单元测试项目链接?同样,我认为项目参考会使这不必要,但似乎我并不真正了解项目参考。

如果可能的话,我可以获得一个非常白痴的证据,一步一步的程序,在VS2010的主要项目旁边设置一个Boost测试单元测试项目?

我会更好地使用此处列出的方法(一个项目,构建测试或实际项目exe的不同配置): http://blog.yastrebkov.com/2010/07/boost-test-setup-and-usage.html

非常感谢,

1 个答案:

答案 0 :(得分:7)

设置Boost.Test项目背后没有任何魔力。也许是因为它是一个普通的C ++(可执行)项目,与“普通”应用程序没有任何区别。这就是我的工作:

  1. 创建一个新的C ++项目。我总是选择具有预编译头的Win32可执行文件。我有一个命名约定,所有使用Boost.Test的测试项目都以“tests.boost.testee_name ...”开头。
  2. "stdafx.h"中,添加<boost/unit_test.hpp>的包含并定义BOOST_TEST_MODULE(我总是选择项目名称)。此外,添加此项目所需的外部组件的所有其他包含,例如,其他boost库,stl头等。这会使编译时间大大加快。
  3. 被测者必须是图书馆(动态或静态)。所以“添加引用”到所有必需的依赖项。您当然可以测试仅限标头的库,在这种情况下不要添加引用。
  4. 根据Boost.Test手册,将源文件添加到测试项目中。我强制执行的约定是每个文件BOOST_FIXTURE_TEST_SUITE
  5. 为方便起见,我有一个为升压单元测试量身定制的自定义属性表,我将其添加到每个升压测试项目中。其中包含一个构建后事件,它会运行测试。
  6. 我必须补充一点,最近,我使用Visual Studio 2012切换到MSTest,这允许更舒适的方式来管理测试和测试结果。然而,对于软件中最重要的部分,我仍在编写增强测试,以确保使用较旧的工具集和可能的其他平台的正确性。

    干杯,

    保罗