代码之家  ›  专栏  ›  技术社区  ›  David Dibben

如何将TDD方法与VisualStudio集成?

  •  11
  • David Dibben  · 技术社区  · 18 年前

    我对使用Visual Studio 2005(专业)使用TDD和单元测试C++感兴趣。

    首先是一些背景。我们有一个相当大的项目,其中大部分是在Linux上开发的,使用CppUnit进行单元测试。项目被分成几个库,每个库都有自己的一组测试。我有一个简单的脚本,它编译库,编译测试套件,然后运行测试。所以在对代码进行修改之后,我只需从命令行运行“test”,测试就可以运行了。

    现在,大多数开发人员正在使用Windows上的Visual Studio 2005开发此产品。当然,他们仍然可以使用nmake从命令行运行测试,但需要额外的步骤,我希望有一个更集成的解决方案。

    所以我的问题有两部分。

    首先,在一个大型代码库上为测试安排代码的最佳方式是什么?在一个解决方案中创建多个测试项目(每个库一个)正常吗?

    其次,是否有将CppUnit测试集成到Visual Studio中的工具?如果依赖项设置为以核心方式运行,则测试项目应运行测试,但当前结果仍显示在命令窗口中。

    7 回复  |  直到 18 年前
        1
  •  3
  •   Steve Hawkins    18 年前

    我公司的一个项目就是这样做的。我们使用一个叫做cxtest的单元测试框架( http://cxxtest.sourceforge.net/guide.html

    我们通过提供构建单元测试(如果它们需要构建)然后执行它们的后期构建步骤来与visual studio集成。输出(显示通过的和失败的)显示在输出窗口中——您永远不需要离开IDE。

        2
  •  2
  •   Rob    18 年前

    更多细节 here.

        3
  •  2
  •   Gishu    18 年前
    • 我发现下面的文件夹层次结构很有用。将代码和测试创建为ProjectFolder的子文件夹。创建2个解决方案code\Project.sln和tests\tests.sln。现在对于创建的每个类库或可执行文件,例如Customers.dll都有相应的测试dll。所以code\Customers\Customers.csproj将有tests\Customers\TestCustomers.csproj,它引用前者。
    • this page has what you need 要在IDE中使用单键按test execution+reporting。
        4
  •  2
  •   Dave Hillier    17 年前

    以下是我的工作:

    • 在主解决方案中创建一个测试可执行项目,它只使用来自单元、单元测试和测试框架的源代码。
    • 使测试运行程序在测试成功运行时生成文本文件,以便visual studio可以跟踪依赖项。
    • 添加项目以启动测试运行程序并生成测试文件。这意味着现在每个测试有两个项目。
    • 使测试运行程序成为包含该单元的库的依赖项。

    我对生成的项目数量并不完全满意,但我认为这是一个Visual Studio GUI问题,因为将这些项目包含在其中用于调试等目的实际上非常有用。

    我尝试使用生成后步骤来运行测试,但不幸的是,这意味着生成在第一次失败后没有被中断。

        5
  •  1
  •   Clay    18 年前

    我的团队目前正在使用一个系统,其中我们有一个自动化的夜间生成(也可以由任何人从项目生成仪表板运行),其中包括一个VS2k5“测试”解决方案。测试解决方案保存所有的单元测试项目;主项目中每个“单元”的代码对应一个单元测试项目。

    当自动构建运行时,它先构建主解决方案,然后构建测试解决方案,最后运行测试解决方案生成的所有可执行文件(Perl脚本将其粘合在一起)。编译结果和测试执行(退出成功、退出失败)用于更新项目生成仪表板。

    退出失败技巧也可以应用于主项目的自定义生成步骤:如果单元测试自定义生成步骤返回退出失败,则生成本身将失败。

        6
  •  1
  •   Jay Bazuzi Buck Hodges    18 年前

    还可以使用托管C++在VisualStudio中使用内置的单元测试框架编写单元测试。

        7
  •  0
  •   Dushara    17 年前

    看一看 CUnitWin32