我正在执行一系列包含测试的大量灯具。每个测试中都有代码,用于根据NUnit属性将任何错误记录到文件中。执行完成后,该文件包含一个漂亮格式的所有错误,以便发送给顾问。
首先,我需要一个钩子来删除文件的先前副本,以便可以新生成文件。如果这是一个夹具中的一系列测试,那将是一个芯片 - 将其放入夹具设置中。但是我需要这几十个测试夹具来共享一个公共文件,所以把它放在夹具设置中并不起作用。
其次,这一切都只是重新发挥作用...如果有一些非常棒的NUnit标准用于将结果分流到备用输出,我很乐意听到这一点。
TIA。
答案 0 :(得分:0)
最简单的方法是将套件生成的许多NUnit文件合并为一个。 This answer链接到创建的a library以作为MSBuild任务进行合并。
第一步是编译该库(当我尝试时没有问题)并将构建的程序集放在具有以下MSBuild项目(或类似的东西)的目录中:
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
ToolsVersion="4.0"
DefaultTargets="UnitTest">
<UsingTask AssemblyFile="$(MSBuildProjectDirectory)\15below.NUnitMerger.dll"
TaskName="FifteenBelow.NUnitMerger.MSBuild.NUnitMergeTask" />
<Target Name="UnitTest">
<ItemGroup>
<ResultsFiles Include="$(MSBuildProjectDirectory)\nunit-result*.xml" />
</ItemGroup>
<NUnitMergeTask FilesToBeMerged="@(ResultsFiles)"
OutputPath="$(MSBuildProjectDirectory)\TestResult.xml" />
</Target>
</Project>
在这里,我假设您的文件设置在同一目录中,即:
NUnit结果在目录中后,从此目录运行MSBuild以获取输出:
msbuild merge.msbuildproj
生成的文件(此处为TestResult.xml
)与NUnit的普通Xml输出格式相同,但输入文件中包含所有test-suite type=Assembly
个节点。