我知道在博客发布后有很多关于此问题和博客的问题,但有人可以提出最简单的答案(或链接到现有问题,如果有适当的答案),以便在Visual Studio 2005上进行以下工作:
NUnit测试在Visual Studio上执行 常规构建(例如,对现有* .proj文件的绝对最小更改,以使MSUnild编译中包含NUnit)。如果它不会使事情过于复杂,有没有一种好方法可以将MSBuild社区任务项目用作二进制文件而不是安装在每台开发机器上?
测试失败显示在错误列表/警告中。
测试失败会暂停发布编译。
感谢您的帮助!
答案 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测试,this和this可能有所帮助。
希望这有帮助
答案 1 :(得分:1)
您可以在TeamCity轻松完成此操作。你甚至不需要使用MSBuild; TeamCity可以从解决方案文件构建,并可以配置为运行NUnit测试。它执行您在第2点列出的所有功能,并创建趋势图表和报告。
答案 2 :(得分:1)
您可能会发现此列表非常有用:http://groups.google.com/group/nunit-discuss