是否有合并NUnit结果文件的工具?

Rob*_*oud 15 nunit

由于不明原因,我的Nunit测试夹具无法在一次运行中执行,因此我不得不在单独的运行中执行一些测试.但是,这意味着测试结果将分割为多个输出文件.

是否有可用的工具可以将NUnit结果XML文件合并到一个XML文件中?

我尝试使用现有的Nunit-summary工具,但这只是依次用给定的XSL文件解析XML文件,并将结果连接成一个大文件.

相反,我希望首先将测试用例的结果合并/分组到正确的命名空间/ testfixtures中,然后将其提供给XSLT处理器.这样,所有测试结果都应该由夹具显示,即使它们没有在一次运行中收集.

mav*_*vnn 5

这可能为时已晚,无法帮助您,但我们最近遇到了类似的问题并编写了一个小型开源工具来帮助您:https://github.com/15below/NUnitMerger

从自述文件:

在MSBuild中使用

加载任务:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
             ToolsVersion="4.0"
             DefaultTargets="Build">
  <UsingTask AssemblyFile="$(MSBuildProjectDirectory)\..\Tools\MSBuild\15below.NUnitMerger.dll" TaskName="FifteenBelow.NUnitMerger.MSBuild.NUnitMergeTask" />
  ...
Run Code Online (Sandbox Code Playgroud)

在目标中输入一组文件:

  <Target Name="UnitTest" DependsOnTargets="OtherThings">
    ... Generate the individual files here in $(TestResultsDir) ...

    <ItemGroup>
      <ResultsFiles Include="$(TestResultsDir)\*.xml" />
    </ItemGroup> 

    <NUnitMergeTask FilesToBeMerged="@(ResultsFiles)" OutputPath="$(MSBuildProjectDirectory)\TestResult.xml" />
  </Target>
Run Code Online (Sandbox Code Playgroud)

在OutputPath中查找生成的组合结果.

在F#中使用

创建一个F#控制台应用程序并添加15below.NUnitMerger.dll,System.Xml和System.Xml.Linq作为参考.

open FifteenBelow.NUnitMerger.Core
open System.IO
open System.Xml.Linq

// All my files are in one directory
WriteMergedNunitResults (@"..\testdir", "*.xml", "myMergedResults.xml")

// I want files from all over the place
let myFiles = ... some filenames as a Seq

myFiles
|> Seq.map (fun fileName -> XDocument.Parse(File.ReadAllText(fileName)))
|> FoldDocs
|> CreateMerged
|> fun x -> File.WriteAllText("myOtherMergedResults.xml", x.ToString())
Run Code Online (Sandbox Code Playgroud)