nunit测试仅在作为tfs msbuild进程的一部分运行时抛出异常

l--*_*''' 13 c# msbuild tfs nunit visual-studio

我正在使用TFS 2012从Visual Studio 2015构建和部署解决方案而没有任何问题.我决定将我的单元测试作为构建过程的先决条件的一部分.

独立于msbuild进程,单元测试运行没有问题并成功; 但是,当我将它们作为构建过程的一部分合并时,我在构建中遇到以下异常:

Exception NUnit.Core.UnsupportedFrameworkException, Exception thrown executing tests in D:\Builds\4\PA1111CE\Dev1111dBus\bin\mmmTests.dll
 No test is available in D:\Builds\4\PA1111CE\Dev1111dBus\bin\mmmTests.dll. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again.
Run Code Online (Sandbox Code Playgroud)

构建部分成功.

为了确保运行测试,我将Process中Disable Tests属性设置为false:

在此输入图像描述

除此之外,我还为自动化测试设置了选项:

在此输入图像描述

唯一可用的测试跑步者如下:

在此输入图像描述

另外,根据我的扩展和更新,它显示我确实安装了nunit适配器3:

在此输入图像描述

我究竟做错了什么?为什么我的构建仅部分成功?

Cha*_*lie 14

该消息表明您正在尝试使用错误的Visual Studio适配器运行NUnit测试.使用2.0适配器进行NUnit 2.x测试,使用3.0适配器进行NUnit 3.0测试.

如果安装了两个适配器,则每个适配器都将运行它们的设计测试.他们每个人都会在他们不支持的任何程序集中显示一条消息.该消息并不意味着是一个错误,我们试图以一种不会被视为这样的方式来表达它.但是,我们觉得我们必须提供它,以防您希望该组件由该特定适配器处理.默默地传递它似乎是错误的.

在VS IDE下运行时,该消息不会导致测试运行失败.看来在TFS下运行确实会导致失败.如果内存服务,我们为NUnit 3适配器解决了这个问题,但对于NUnit 2适配器没有(尚未).

  • 作为参考,我们的项目安装了2.x和3.x测试适配器.这导致所有测试正常运行,并且因此错误而失败.删除2.x测试适配器解决了这个问题. (2认同)

Mar*_*lis 5

通过NuGet使用NUnit 3时,我在构建服务器上遇到了同样的问题.我从Visual Studio卸载了NUnit 2和3测试适配器,从机器上卸载了NUnit 2.我还有问题.

在我的情况下,问题是由4个NUnit2 DLL隐藏在:

C:\ Program Files(x86)\ Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\Extensions

一旦删除它们,TFS构建就会完美执行.