私たちには実行に1時間(それぞれ30,20および10分)かかる3つの単体テストDLLがあります。 Ranと同時に30分以上かかることはありません。 CC.NET:NUnitテストの並列化
はそれが可能だ場合、あなたは知っていますか、そしてどのように、CC.Net中のNUnitの実行、または "内部" NUnitのプロセスを並列化するために:- が同じ時間に3 DLLを実行
または、
- ラン多くのテスト並列プロセスとして1つのDLLで
私たちには実行に1時間(それぞれ30,20および10分)かかる3つの単体テストDLLがあります。 Ranと同時に30分以上かかることはありません。 CC.NET:NUnitテストの並列化
はそれが可能だ場合、あなたは知っていますか、そしてどのように、CC.Net中のNUnitの実行、または "内部" NUnitのプロセスを並列化するために:または、
parallel tasksを使用すると、複数のNUnitプロセスを並行して実行できます。
あなたはNUnitのを使用している場合は、あなたが見てい:これはSOいくつかの他のアイデアのための同じトピックに答える参照、また
MSBuildを使用してテストを並行して実行した後、マージするその結果の(複数の)テスト結果ファイルを1つのファイルにまとめて報告することができます.CC.Netはビルドサーバー上でうれしくそれを実行しますが、開発者にとっては自分のマシンでも意味のある結果を得ることができます。
<Target Name="UnitTestDll">
<Message Text="Testing $(NUnitFile)" />
<ItemGroup>
<ThisDll Include="$(NUnitFile)"/>
</ItemGroup>
<NUnit ToolPath="$(NUnitFolder)" Assemblies="@(ThisDll)" OutputXmlFile="$(TestResultsDir)\%(ThisDll.FileName)-test-results.xml" ExcludeCategory="Integration,IntegrationTest,IntegrationsTest,IntegrationTests,IntegrationsTests,Integration Test,Integration Tests,Integrations Tests,Approval Tests" ContinueOnError="true" />
</Target>
<Target Name="UnitTest" DependsOnTargets="Clean;CompileAndPackage">
<Message Text="Run all tests in Solution $(SolutionFileName)" />
<CreateItem Include="$(SolutionFolder)**\bin\$(configuration)\**\*.Tests.dll" Exclude="$(SolutionFolder)\NuGet**;$(SolutionFolder)**\obj\**\*.Tests.dll;$(SolutionFolder)**\pnunit.tests.dll">
<Output TaskParameter="Include" ItemName="NUnitFiles" />
</CreateItem>
<ItemGroup>
<TempProjects Include="$(MSBuildProjectFile)">
<Properties>NUnitFile=%(NUnitFiles.Identity)</Properties>
</TempProjects>
</ItemGroup>
<RemoveDir Directories="$(TestResultsDir)" Condition = "Exists('$(TestResultsDir)')"/>
<MakeDir Directories="$(TestResultsDir)"/>
<MSBuild Projects="@(TempProjects)" BuildInParallel="true" Targets="UnitTestDll" />
<ItemGroup>
<ResultsFiles Include="$(TestResultsDir)\*.xml" />
</ItemGroup>
<NUnitMergeTask FilesToBeMerged="@(ResultsFiles)" OutputPath="$(MSBuildProjectDirectory)\TestResult.xml" />
</Target>
:
例のコードは次のようになります