nant:单个 nant nunit2 目标中单独单元测试的自定义消息

nant: Custom messages for separate unit tests in single nant nunit2 target

我们正在使用 nant 构建我们的源代码和 运行 单元测试 (nunit 2.5)。在 nant 构建文件中,我们为不同的单元测试程序集设置了单独的 nunit2 目标。

<each message="Run Test 1" />
<nunit2 verbose="true">
    <formatter type="Plain" />
    <test assemblyname="Test1.dll" />
</nunit2>

<each message="Run Test 2" />
<nunit2 verbose="true">
    <formatter type="Plain" />
    <test assemblyname="Test2.dll" />
</nunit2>

在 Team City 构建服务器上它会导致性能问题 - 每个这样的目标都会强制单独加载 Nunit 运行ner。

有可能在一个 nunit2 目标中合并测试:

<nunit2 verbose="true">
    <formatter type="Plain" />
    <test assemblyname="Test1.dll" />
    <test assemblyname="Test2.dll" />
</nunit2>

但是,如果没有 echo 语句,这种情况下的输出对于我们来说不够明确。

有没有办法拥有一个 nunit2 目标并为每个测试指定自定义消息?类似于以下内容:

<nunit2 verbose="true">
    <formatter type="Plain" />
    <each message="Run Test 1" />
    <test assemblyname="Test1.dll" />
    <each message="Run Test 2" />
    <test assemblyname="Test2.dll" />
</nunit2>

我发现让单元测试更冗长的唯一方法是在 nunit2 目标上添加标签属性

<nunit2 verbose="true" labels="true">
    <formatter type="Plain" />
    <test assemblyname="Test1.dll" />
    <test assemblyname="Test2.dll" />
</nunit2>

因此,nant 将按以下格式输出所有 运行 单元测试

***** Test1.Test1.Ctor_Test
***** Test2.Test2.Ctor_Test
Tests run: 2, Errors: 0, Failures: 0, Time: 0.123 seconds
  Not run: 0, Invalid: 0, Ignored: 0, Skipped: 0