3

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

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

不错,很好听 但是,我在实际设置时遇到了麻烦。我还没有找到关于设置它的最佳方法的明确解释。

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

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

如果可能的话,我能否得到一个非常白痴的证明,一步一步地在 VS2010 中与主项目一起设置 Boost Test 单元测试项目?

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

非常感谢,

4

1 回答 1

6

建立 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. 为方便起见,我有一个为 boost 单元测试量身定制的自定义属性表,我将其添加到每个 boost 测试项目中。其中,它包含一个运行测试的构建后事件。

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

干杯,

保罗

于 2013-01-12T10:51:54.387 回答