问题 如何将TDD方法与VisualStudio集成?


我有兴趣听听使用TDD和使用Visual Studio 2005(专业版)的C ++单元测试的经验

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

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

所以我的问题有两个部分。

首先,在大型代码库上布置测试代码的最佳方法是什么?在解决方案中创建多个测试项目是否正常,每个库一个?

其次是否有任何工具可以将CppUnit测试集成到Visual Studio中?如果设置了依赖关系,则运行测试项目应该运行测试,但目前结果仍然出现在命令窗口中。


3811
now


起源



答案:


我公司的其中一个项目就是这样做的。我们使用一个名为CXXTest的单元测试框架(http://cxxtest.sourceforge.net/guide.html)。我们非常喜欢这个C ++框架,因为它只需要你编写一个包含单元测试的头文件。 .CPP文件由脚本创建(提供Python和Perl脚本)。

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


3
2017-09-22 02:05





我使用Boost Test框架。我倾向于将我的代码拆分为.lib文件,并且每个文件都有一个单独的控制台模式EXE测试项目。构建测试项目时,它使用“Post build stage”来启动自身,从而运行测试。您可以使每个测试项目成为主应用程序的依赖项,以便每次构建时,所有测试都先运行,但这可能非常耗时。相反,我倾向于根据需要手动运行测试项目,但我的自动夜间构建系统将自动运行所有测试项目(我编写脚本,如果任何测试失败,构建失败,我收到电子邮件通知)。

更多细节 这里。


2
2017-09-21 18:19





  • 我发现以下文件夹层次结构很有用。创建代码和测试作为ProjectFolder的子文件夹。创建2个解决方案代码\ Project.sln和tests \ Tests.sln。现在为每个创建的类库或可执行文件,例如Customers.dll有相应的测试dll。因此代码\ Customers \ Customers.csproj将具有测试\ Customers \ TestCustomers.csproj,它引用前者。
  • 将CPPUnit集成到Visual Studio中将在“项目属性”中选择正确的应用程序。“调试”设置。我认为 这个页面有你需要的 在IDE中进行单键按压测试执行+报告。

2
2017-09-22 03:14





这是我做的:

  • 在主解决方案中创建一个测试可执行项目,该项目仅使用来自单元,单元测试和测试框架的源。
  • 使测试运行器在成功运行测试时生成文本文件,因此visual studio可以跟踪依赖关系。
  • 添加项目以启动测试运行器并生成测试文件。这意味着您现在每次测试都有两个项目。
  • 使测试运行器成为包含该单元的库的依赖项。

就个人而言,我认为测试框架(Google Test,Boost测试,CppUnit等)并不重要。大多数功能相当于功能。

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

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


2
2018-02-15 00:10



为什么投票失败? - Dave Hillier


答案:


我公司的其中一个项目就是这样做的。我们使用一个名为CXXTest的单元测试框架(http://cxxtest.sourceforge.net/guide.html)。我们非常喜欢这个C ++框架,因为它只需要你编写一个包含单元测试的头文件。 .CPP文件由脚本创建(提供Python和Perl脚本)。

我们通过提供构建单元测试(如果需要构建)的后构建步骤与visual studio集成,然后执行它们。输出(显示传递的%