首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在NUnit测试会话开始时执行代码(而不是安装夹具)

如何在NUnit测试会话开始时执行代码(而不是安装夹具)
EN

Stack Overflow用户
提问于 2014-04-25 14:53:32
回答 1查看 307关注 0票数 0

我正在执行一大串包含测试的许多固定装置。在每个测试中,都有基于NUnit属性将任何错误记录到文件中的代码。一旦执行完成,该文件包含所有的错误以一种很好的格式发送给顾问。

首先,我需要一个钩子来删除文件的前一个副本,以便文件可以新生成。如果这是一系列的测试在一个单一的夹具,它将是一个芯片射击-把它在夹具的设置。但是我需要这几十个测试装置来共享一个共同的文件,所以把它放在夹具安装中是行不通的。

第二,这感觉就像重新发明了wheel...if --有一些很棒的NUnit标准,可以将结果分流到另一个输出,我很想听听。

蒂娅。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-29 12:43:06

最简单的方法是将您的套件生成的许多NUnit文件合并到一个单独的文件中。这个答案链接到创建用于将合并作为MSBuild任务执行的图书馆

第一步是编译这个库(在我尝试时没有问题),并将构建的程序集放在一个目录中,其中包含以下MSBuild项目(或类似的内容):

代码语言:javascript
复制
<?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以获得输出:

代码语言:javascript
复制
msbuild merge.msbuildproj

结果文件(这里是TestResult.xml)具有与来自NUnit的常规Xml输出相同的格式,但是有来自输入文件的所有test-suite type=Assembly节点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23296454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档