由于我需要快速解决方法,因此我添加了一个后处理步骤来抓取在 DotCover 运行期间生成的 NUnit xml 文件以检测测试用例失败,如果我发现任何问题,我就会使构建失败。我通过一个简单的自定义 MSBuild 任务做到了这一点:
public class CheckNUnitResults : Task
{
[Required]
public string ResultFile { get; set; }
public override bool Execute()
{
Log.LogMessageFromText("Analyzing nunit results : " + ResultFile, MessageImportance.Normal);
var failedCases =
XDocument
.Load(ResultFile)
.Descendants("test-case")
.Where(xe => xe.Attribute("success").Value.Equals("False"));
var fail = failedCases.Any();
if (fail)
{
Log.LogError("Found test case failures : " +
string.Join(", ", failedCases
.Select(xe => xe.Attribute("name").Value)
.ToArray()));
}
return !fail;
}
}
因此,这是从 MSBuild 调用的:
<CheckNUnitResults ResultFile="YourNUnitResultFile.xml" />
(我在包含我的结果文件的 ItemGroup 上循环调用它)