我最近推出的NUnit到一个Visual Studio C#项目。 该项目的文件夹结构看起来像
- project root
-- applications (rich client interface, web interface, small tools)
-- components (business logic)
-- vendor (3rd party components)
-- tests (Nunit tests)
对于在应用程序或组件的每个Visual Studio项目“MyProject的”有下名为“MyProject.Test”测试相应的项目。 当我介绍了NUnit测试,我把每个.Test.csproj文件中的以下内容:
<Target Name="AfterBuild">
<CreateItem Include="$(TargetPath)">
<Output TaskParameter="Include" ItemName="MyProjectTests" />
</CreateItem>
<!-- Create folder for test results -->
<MakeDir Directories="$(OutDir)\TestResults" />
<!-- Run tests-->
<NUnit Assemblies="@(MyProjectTests)" ToolPath="..\vendor\NUnit\bin" OutputXmlFile=".\TestResults\MyProject.Test.Results.xml" WorkingDirectory="$(OutDir)" />
<!-- Create HTML report -->
<Xslt Inputs="$(OutDir)\TestResults\MyProject.Test.Results.xml" Xsl="$(MSBuildCommunityTasksPath)\NUnitReport.xsl" RootTag="Root" Output="$(OutDir)\TestResults\MyProject.Test.Results.html" />
</Target>
在Visual Studio中以及与CLI的MSBuild生成服务器上构建解决方案时,这工作得很好,无论是。
这种方法的其余不便之处在于,它让我在每个测试项目输出文件夹中的文件夹TestResults测试报告,但什么也没有在我的解决方案的主要输出文件夹。 所以,我的问题是:
什么是收集溶液中的/启动项目的输出文件夹中生成的HTML的NUnit报告的首选方法是什么? 什么MSBuild的说明应我把其中的.csproj文件? 我刚开始使用的MSBuild,我无法找出最佳实践...
它既有在Visual Studio和MSBuild的CLI的工作,但是这不应该是一个问题,我猜。
谢谢