如何收集与NUnit的报告的MSBuild?(How to collect NUnit report

2019-09-16 15:09发布

我最近推出的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的工作,但是这不应该是一个问题,我猜。

谢谢

Answer 1:

如果你有一个构建服务器,一个好的方法是设置与配置为您的测试文件夹虚拟路径的站点。 然后在你的公司的任何人都可以浏览像HTTP://build.companydomain.local/yourapp/nunitreports/ ,托管在构建服务器的IIS(如果你的构建服务器有一个)。

我和我的覆盖报告这样做。 任何人都可以随时浏览它。 我希望它能帮助!



文章来源: How to collect NUnit reports with MSBuild?