由于不明原因,我的Nunit测试夹具无法在一次运行中执行,因此我不得不在单独的运行中执行一些测试.但是,这意味着测试结果将分割为多个输出文件.
是否有可用的工具可以将NUnit结果XML文件合并到一个XML文件中?
我尝试使用现有的Nunit-summary工具,但这只是依次用给定的XSL文件解析XML文件,并将结果连接成一个大文件.
相反,我希望首先将测试用例的结果合并/分组到正确的命名空间/ testfixtures中,然后将其提供给XSLT处理器.这样,所有测试结果都应该由夹具显示,即使它们没有在一次运行中收集.
这可能为时已晚,无法帮助您,但我们最近遇到了类似的问题并编写了一个小型开源工具来帮助您:https://github.com/15below/NUnitMerger
从自述文件:
加载任务:
<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#控制台应用程序并添加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)
| 归档时间: |
|
| 查看次数: |
3584 次 |
| 最近记录: |