NUnit3测试不能在TFS构建上运行

时间:2016-04-28 11:42:50

标签: c# .net unit-testing tfs nunit

我们目前正在将我们的单元测试从使用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 ...

开始执行......

没有要执行的测试。

1 个答案:

答案 0 :(得分:0)

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

虽然.pbd文件是在本地生成的,但构建(在本例中为TF Build)正在向MSBuild参数提供/p:DebugType=None开关。删除交换机允许在构建中发现并运行测试。你的构建定义中有类似的东西吗?

该问题已在GitHub上被接受为bug