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

时间:2016-02-04 02:23:20

标签: c# visual-studio tfs msbuild nunit

我正在使用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.

构建部分成功。

为了确保运行测试,我将处理中的禁用测试属性设置为false:

enter image description here

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

enter image description here

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

enter image description here

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

enter image description here

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

4 个答案:

答案 0 :(得分:14)

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

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

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

答案 1 :(得分: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构建就会完美执行。

答案 2 :(得分:3)

我有同样的问题。我使用NUnit 3.2.1,安装了NUnit测试适配器2.0和3.0。

我无法弄清楚如何切换适配器,所以我禁用了2.0。现在我没有错误(即使它只是像你一样的消息 - 测试通过/失败,因为它们应该有)。

要禁用2.0测试适配器(也可能安装3.0):工具 - >扩展程序和更新 - >搜索或找到Nunit 2.0,然后单击禁用或卸载。

答案 3 :(得分:1)

发现这篇文章,但我没有亲自测试过:NUnit failed to load in TFS build

我最终暂时从构建like described here

中排除了我的unittest项目