C++ 如何在VisualStudio2010中设置单独的Boost测试项目

C++ 如何在VisualStudio2010中设置单独的Boost测试项目,c++,unit-testing,boost,C++,Unit Testing,Boost,我想在VisualStudio2010中使用Boost测试对代码进行单元测试。我已经下载并构建了该库的最新版本 我在这里和互联网上的其他地方读了很多关于这个主题的文章,人们似乎建议在你的解决方案中单独设置第二个项目用于测试 好的,听起来不错。然而,我在实际设置时遇到了困难。我还没有找到一个明确的解释,最好的方式来设置这个 我是否需要使用项目引用来使我的单元测试项目引用我的主项目? 如果是这样,我是否仍然需要在单元测试项目的属性中添加主项目的Include&Source目录?如果是这样的话,首先使

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

我在这里和互联网上的其他地方读了很多关于这个主题的文章,人们似乎建议在你的解决方案中单独设置第二个项目用于测试

好的,听起来不错。然而,我在实际设置时遇到了困难。我还没有找到一个明确的解释,最好的方式来设置这个

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

我是否必须让我的主项目输出有一个库来链接我的单元测试项目?同样,我认为项目引用会使这变得不必要,但似乎我并不真正理解项目引用

如果可能的话,我可以得到一个非常简单的步骤,在VS2010的主项目旁边建立一个Boost测试单元测试项目吗

我是否最好使用此处列出的方法(一个项目、构建测试的不同配置或实际项目exe):


非常感谢,

设置Boost.Test项目没有什么神奇之处。可能是因为它是一个规则的C++(可执行文件)项目,与普通的应用程序完全不同。我就是这么做的:

< LI>创建一个新的C++项目。我总是选择带有预编译头的Win32可执行文件。我有一个命名约定,所有使用Boost.test的测试项目都以“tests.Boost.testee\u name…”开头
  • “stdafx.h”
    中,为
    添加include,并定义
    BOOST\u TEST\u模块(我总是选择项目名称)。此外,为该项目所需的外部组件添加所有其他include,例如其他boost库、stl头等。这将大大加快编译时间
  • 受试者必须是库(动态或静态)。因此,“添加引用”到所有必需的依赖项。当然,您可以只测试头库,在这种情况下不添加引用
  • 根据Boost.test手册,将源文件添加到测试项目中。我执行的约定是每个文件一个
    BOOST\u FIXTURE\u TEST\u套件
  • 为了方便起见,我为boost单元测试定制了一个定制的属性表,并将其添加到每个boost测试项目中。除其他外,它还包含一个生成后事件,用于运行测试
  • 我必须补充一点,最近,我使用VisualStudio2012切换到MSTest,它允许以更舒适的方式管理测试和测试结果。尽管如此,对于软件最重要的部分,我仍在编写boost测试,以确保使用旧工具集和潜在的其他平台的正确性

    干杯


    Paul

    项目引用只是确保项目的构建顺序正确?在这种情况下,确保在测试项目之前构建库(如果必要)。设置引用根本不考虑链接,对吗?我仍然需要设置我的测试项目配置以链接库?是和否。添加引用也需要链接。确定。谢谢被测试者必须是一个库,以便将其链接到Boost测试项目中,对吗?如果我的最终目标是制作一个可执行的应用程序,那么我需要一个与库链接以制作可执行文件的第三个项目(main()),即:library proj、test proj和final exe proj。测试项目和最终执行项目都会向库项目添加引用并将其链接到?(1)。对您应该将应用程序逻辑的相关部分放入库中。使它们可测试只是这样做的一个很好的理由。(2) 对。在默认配置中,boost.test项目是一个可执行文件。它创建自己的入口点(main),所以您不需要(不应该)创建自己的入口点。