Nunit3TestAdapter和TFS生成vNext:获取警告:在VS测试步骤中未找到依赖程序集nunit.framework

Nunit3TestAdapter和TFS生成vNext:获取警告:在VS测试步骤中未找到依赖程序集nunit.framework,tfs,nunit,tfsbuild,Tfs,Nunit,Tfsbuild,在过去的几天里,我一直在浏览各种Nunit文章,试图找出我的Nunit测试没有运行的原因 我正在使用TFS 2015 Build vNext引擎和Visual Studio测试步骤来执行Nunit测试用例。用于生成Nunit测试DLL的VS 2015解决方案包含几个.net项目和2个Nunit测试项目。Nunit3.0和Nunit3.0测试Nuget包用于创建和执行测试。测试用例在VisualStudioIDE中运行良好,在vNext中构建解决方案时编译无误 在构建vNext中执行VS测试步骤时

在过去的几天里,我一直在浏览各种Nunit文章,试图找出我的Nunit测试没有运行的原因

我正在使用TFS 2015 Build vNext引擎和Visual Studio测试步骤来执行Nunit测试用例。用于生成Nunit测试DLL的VS 2015解决方案包含几个.net项目和2个Nunit测试项目。Nunit3.0和Nunit3.0测试Nuget包用于创建和执行测试。测试用例在VisualStudioIDE中运行良好,在vNext中构建解决方案时编译无误

在构建vNext中执行VS测试步骤时,我收到以下警告:

警告:未找到E:\TFSBuild\u目录\14\s\EBS\B\u WebEnable\ABC.Data\ABC.Data.Core.nunit.Tests\obj\UnitTesting\ABC.Data.Core.nunit.Tests.dll的依赖程序集nunit.framework。如果不是NUnit项目,则可以忽略。

VS测试步骤配置为:

我已在生成服务器上确认nuget软件包正在还原到生成服务器,与我的本地路径相比,Nunit.framework.dll似乎位于预期的文件路径中


有没有关于是什么导致了这个问题的想法?欢迎您的任何意见

我已经从Nuget恢复了Nunit和Nunit3TestAdapter,以便在我这边进行测试,但无法重现您的问题。我想在这里分享我的步骤供您参考:

  • 将Nunit和Nunit3TestAdapter从测试项目的Nuget-in-VS还原(作为第一个屏幕截图),并检入packages.config文件

  • 在“Visual Studio测试”任务中,在“自定义测试适配器的路径”中指定
    $(Build.SourcesDirectory)\packages
    。就像在sources目录中有一个packages文件夹一样,它会自动搜索testadapter(看起来您的路径很长,您可能需要检查它)

  • 我使用默认VS模板:


  • 在此过程中未发生错误或警告。您可以将您的步骤与我的步骤进行比较并更正您的步骤。希望这能对您有所帮助。

    好的-在离开这个问题并重新审视它之后,我发现了导致nunit.framework.dll问题的问题


    在逐步浏览生成定义之后,我忘记了在生成步骤中有一个MSBuild参数,该参数正在将编译的输出复制到另一个位置/p:OutDir=$(build.stagingDirectory)\ABC。一旦我将测试步骤更改为指向新位置,一切都正常。谢谢大家的反馈

    这不是“TFS vNext”。说这句话会错误地让人们相信您所说的是仍在开发中的TFS版本,例如TFS“15”公共预览版。我刚刚意识到您所说的是已删除的TFS vNext标记。我将其添加回,因为它是stackoverflow中受支持的标记。我看到微软现在称之为“TFS vNext”,而不是“TFS vNext”。该标记用于TFS的未来版本,而不是TFS 2015中引入的构建系统。了解-如何清理TFS vnext标记的描述?描述为“TFS Build vNext是Microsoft用于在TFS中创建生成的最新框架。旨在作为XAML生成系统的易于使用的替代品。”根据您对标记的描述,这有点误导。感谢您的回复!我在发布之前尝试过这些步骤。在构建之前,我确实有NuGet安装程序步骤。我已确认Nunit和Nunit3TestAdapter通过此步骤在与自定义适配器条目的路径匹配的包路径中恢复。根据日志文件,TFS在从NuGet包中查找Nunit3TestAdapter dll时没有问题,因为它不会引发错误或异常。我可能错了,但我感觉到Nunit在构建步骤中生成的测试dll在还原的Nuget路径中找不到Nunit.framework.dll。这听起来像是一个愚蠢的问题,但是.sln文件的已知问题是否位于Nunit测试项目下的文件夹路径?我注意到您的示例(和其他示例)将NuGet包还原到$(Build.SourcesDirectory)\packages,它假定.sln文件位于$(Build.SourcesDirectory)。解决方案文件位于E:\TFSBuild\u目录\14\s\E\BWebEnable\EP\EP.Web\EP.WebSite\EP.WebSite.sln,包被还原到E:\TFSBuild\u目录\14\s\E\BWebEnable\EP\EP.Web\EP.WebSite\packages。您能在还原的Nuget路径中看到nunit.framework.dll吗?除了此警告之外,您还会收到任何错误吗?是的,我已确认dll位于预期路径中。这是编译测试项目的构建解决方案步骤中的一部分日志。这是我的最后一个难题!谢谢