NUnit3测试不在TFS构建上运行

dav*_*ies 6 .net c# tfs nunit unit-testing

我们目前正在将我们的单元测试从使用MSTest迁移到NUnit(版本3.2.1),但是在我们的TFS .xaml构建定义中运行NUnit测试时遇到了问题.TFS构建定义使用规则"在程序集中运行测试匹配**\*.test*.dll".对于我的NUnit测试项目,我已经下载,安装并引用了以下NuGet包:

1)NUnit v3.2.1

2)NUnit3TestAdapter v3.0.10

在VS(测试资源管理器)中执行我的测试工作完美,我认为这些步骤足以确保它们也作为TFS上的CI构建的一部分运行,但是测试永远不会执行.我在诊断输出中没有与这些测试有关的错误/警告/消息,但我确实看到构建过程检测到我的程序集作为单元测试的候选者,因为它与上述通配符规则匹配(**\*.test*.DLL).

我还尝试将NUnit3TestAdapter程序集放在TFS的构建控制器属性中定义的"自定义程序集的版本控制路径"文件夹中,但无济于事.

任何人都可以看到我在这里错过了一个步骤.从我在这些论坛上阅读的所有内容中,我似乎已经做了所有必要的事情,但它们仍然没有执行.

我通过直接在包含我的NUnit测试的程序集上运行MSTest,exe(这是TFS构建使用的)来大大简化了这个问题.有问题的程序集将适配器和nunit框架都安装为NuGet包,而且MsTest仍然报告没有找到任何测试(见下文):

C:\ Users\hdav>"C:\ Program Files(x86)\ Microsoft Visual Studio 14.0\Common7\IDE\MSTest.exe"/ testcontainer:e:\MyCode\nunit\ExpectedExceptionExample\bin\Debug\ExpectedExceptionExample.dll

正在加载e:\ MyCode \nunit\ExpectedExceptionExample\bin\Debug\ExpectedExceptionExample.dll ...

开始执行......

没有要执行的测试.

Per*_* P. 0

我遇到了同样的问题,发现pbd需要存在测试项目的文件才能使适配器发现测试。

.pbd在本地生成文件时,构建(在本例中为 TF Build)正在/p:DebugType=None向 MSBuild 参数提供开关。删除开关允许在构建中发现并运行测试。您的构建定义中可以有类似的内容吗?

该问题已在 GitHub 上被视为错误