要正確地做到這一點,您可能需要某種持續集成服務器,如TeamCity或Cruise Control。
您可以然後使用以下
<!--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-->
添加NUnit的測試,您的MSBuild腳本您可以將條件添加到目標,如果配置版本,任務失敗,那麼則構建失敗。
我想這應該覆蓋點1和3
編輯:其他的方式做這將是運行NUnit的測試使用Visual Studio中的前/後生成步驟,this和this可能會有幫助。
希望這有助於
嗨,但這不會使用普通的Visual Studio生成會嗎?即開發人員需要爲CruiseControl等安裝一個客戶端,然後在Visual Studio之外進行構建? – 2009-04-15 01:00:59