使NUnit测试与Visual Studio常规版本集成所需的最低要求是什么?

时间:2009-04-14 06:38:26

标签: visual-studio-2005 msbuild nunit

我知道在博客发布后有很多关于此问题和博客的问题,但有人可以提出最简单的答案(或链接到现有问题,如果有适当的答案),以便在Visual Studio 2005上进行以下工作:

  1. NUnit测试在Visual Studio上执行 常规构建(例如,对现有* .proj文件的绝对最小更改,以使MSUnild编译中包含NUnit)。如果它不会使事情过于复杂,有没有一种好方法可以将MSBuild社区任务项目用作二进制文件而不是安装在每台开发机器上?

  2. 测试失败显示在错误列表/警告中。

  3. 测试失败会暂停发布编译。

  4. 感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

为了做到这一点,您可能需要某种类型的持续集成服务器,如TeamCity或Cruise Control。

然后,您可以使用以下

将nUnit测试添加到MsBuild脚本中
<!--BEGIN RUNNING UNIT TESTS-->
  <Choose>
    <When Condition=" '$(Configuration)' == 'Release' ">
      <ItemGroup>
        <TestAssemblies Include="$(BuildDir)\Builds\Release\BusinessLayer.Tests.dll" />
        <TestAssemblies Include="$(BuildDir)\Builds\Release\ResourceAccessLayer.Tests.dll" />
      </ItemGroup>
    </When>
    <Otherwise>
      <ItemGroup>
        <TestAssemblies Include="$(BuildDir)\Builds\Debug\BusinessLayer.Tests.dll" />
        <TestAssemblies Include="$(BuildDir)\Builds\Debug\ResourceAccessLayer.Tests.dll" />
      </ItemGroup>
    </Otherwise>
  </Choose>
  <UsingTask TaskName="NUnit" AssemblyFile="$(teamcity_dotnet_nunitlauncher_msbuild_task)" />
  <Target Name="Test" DependsOnTargets="Build">
    <NUnit NUnitVersion="NUnit-2.4.6" Assemblies="@(TestAssemblies)" />
  </Target>
<!--RUNNING UNIT TESTS-->

您可以将条件添加到目标,如果配置为Release并且任务失败,那么构建将失败。

我认为这应该涵盖第1点和第3点

编辑:另一种方法是使用Visual Studio中的前/后构建步骤运行nUnit测试,thisthis可能有所帮助。

希望这有帮助

答案 1 :(得分:1)

您可以在TeamCity轻松完成此操作。你甚至不需要使用MSBuild; TeamCity可以从解决方案文件构建,并可以配置为运行NUnit测试。它执行您在第2点列出的所有功能,并创建趋势图表和报告。

答案 2 :(得分:1)

您可能会发现此列表非常有用:http://groups.google.com/group/nunit-discuss