Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# nunit仅在作为tfs msbuild进程的一部分运行时测试引发异常_C#_Visual Studio_Tfs_Msbuild_Nunit - Fatal编程技术网

C# nunit仅在作为tfs msbuild进程的一部分运行时测试引发异常

C# nunit仅在作为tfs msbuild进程的一部分运行时测试引发异常,c#,visual-studio,tfs,msbuild,nunit,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\

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

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

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

此外,根据我的扩展和更新,它表明我确实安装了nunit适配器3:


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

此消息表示您试图使用错误的Visual Studio适配器运行NUnit测试。NUnit 2.x测试使用2.0适配器,NUnit 3.0测试使用3.0适配器

如果您安装了两个适配器,那么每个适配器都将运行为其设计的测试。对于不支持的任何程序集,每个程序集都将在中显示一条消息。这个消息并不意味着是一个错误,我们试图用这样一种方式来表达它,这样它就不会被视为错误。然而,我们觉得我们必须给出它,以防您期望该程序集由该特定适配器处理。默默地走过它似乎是错误的


在VS IDE下运行时,该消息不会导致测试运行失败。似乎在TFS下运行确实会导致故障。如果内存可用,我们修复了NUnit 3适配器的此问题,但(尚未)修复了NUnit 2适配器的此问题。

找到了本文,但我自己还没有测试过:


我最终暂时将我的unittest项目从构建中排除了出来,我遇到了同样的问题。我使用NUnit 3.2.1,并安装了NUnit测试适配器2.0和3.0

我不知道如何切换适配器,所以我禁用了2.0版本。现在,我没有收到任何错误(尽管这只是一条类似于您的消息—测试通过/失败,因为它们本应如此)


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

通过NuGet使用Nunit 3时,我的构建服务器上也出现了同样的问题。我从Visual Studio卸载了NUnit 2和3测试适配器,并从计算机上卸载了NUnit 2。我仍然有这个问题

在我的案例中,问题是由隐藏在以下位置的4个NUnit2 DLL引起的:

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


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

charlie谢谢,请看我添加到这篇文章中的图片,这表明nunit test runner并非如此available@Charlie,我的问题和恩格斯一样。我已安装NUnit 3.2.1,但NunitestAdaptor.2.0.0在我的“软件包”文件夹中。在哪里可以找到适用于VS 2013的正确3.2.1适配器?如果添加NUnit3TestAdapter包,错误应该会消失。作为参考,我们的项目同时安装了2.x和3.x测试适配器。这导致所有测试都正常运行,并且由于此错误而失败。删除2.x测试适配器解决了这个问题。我更新了答案以处理安装了两个适配器的情况。我得到了相同的错误。。。您设法解决了吗?您使用的是哪个NUnit framework版本和测试适配器版本?您的测试项目在项目属性中针对的是.NET framework的哪个版本?构建部分成功是因为构建成功了,而单元测试却没有。是的,这很重要,但是你是如何禁用2.0版本的呢?通过VisualStudio?