我上周升级到了Visual Studio 2017。首先,使用MSTest v1进行具有多个测试项目的解决方案似乎不错。大多数测试项目可以很好地执行测试。这是.NET Framework,而不是.NET Core。
但是,有一个项目遇到了我的问题。这是一个集成测试项目,这意味着它使用ChromeDriver和Selenium运行Web应用程序测试。该项目引用了NUnit,尽管该引用来自另一个项目引用。我实际上并没有使用NUnit作为测试框架。
当尝试在该特定测试项目中运行任何测试时,这是错误:
Could not find test executor with URI 'executor://mstestadapter/v1'. Make sure that the test executor is installed and supports .net runtime version .
Test project {name} does not reference any .NET NuGet adapter. Test discovery or execution might not work for this project.
It's recommended to reference NuGet test adapters in each test project in the solution.
在浏览https://docs.microsoft.com/en-us/visualstudio/releasenotes/vs2017-preview-relnotes#--visual-studio-2017-version-158-preview-4的预览发行说明(向下滚动到“ ...新增功能...”,然后是.NET测试适配器扩展)后,我找到了此解决方案。它提到了这一重大更改(尽管它并没有破坏我的其他项目),但没有提及解决该问题的实际方法。
当然,从长期来看,不选择该选项似乎并不可行。因此,我正在寻找如何进行操作的指南。
我已经尝试查看是否可以“迅速”升级到MSTest v2,但这有一个问题,因为找不到System.Runtime 4.1.2。我尝试通过NuGet添加System.Runtime 4.3.0,但这并不能解决问题。
答案 0 :(得分:4)
我在运行Xamarin.UITests时遇到了类似的问题,并通过在Visual Studio中安装“ NUnit 2测试适配器”扩展程序解决了该问题。在Visual Studio 2017中,您可以从工具>>扩展和更新...>联机>搜索“ NUnit适配器”中执行此操作>单击NUnit 2测试适配器,然后单击下载按钮进行安装。当提示您完成安装时,请重新启动Visual Studio。
答案 1 :(得分:1)
了解此项目中如何引用MSTest V1框架程序集(Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll)将很有趣。兼容性复选框也最终在上图中被禁用,应确保该项目具有MSTestV1测试并启用了运行测试。如果不是这样,则由于某种原因,检测逻辑将被破坏,需要修复-有关如何引用程序集的摘要将对您有所帮助。
关于迁移到MSTest V2的问题,该博客应该提供帮助:https://blogs.msdn.microsoft.com/devops/2016/06/17/taking-the-mstest-framework-forward-with-mstest-v2/。对于您可能遇到的特定问题,此回购上的github问题听起来很像:https://github.com/Microsoft/testfx/issues/184。
答案 2 :(得分:0)
“ ...但是有一个问题,因为找不到System.Runtime 4.1.2。”
我认为这是app.config中的设置,当项目设置更新时,该设置不会更新。我在packages文件夹下搜索System.Runtime,然后将app.config更改为与我发现的内容匹配的内容,然后那个特定的问题消失了。
答案 3 :(得分:0)
Caltor的答案为我解决了很多问题:这是我需要的NUnit适配器。但是我遵循的步骤略有不同。它们适用于VS 2019(但也可能适用于VS 17):
对我来说,该问题类似于OP的问题-该适配器安装在某些项目上,但未安装在其他项目上。但是令人困惑的是,在该项目的“参考”节点下并没有立即看到这一点。在“引用”节点下与nunit有关的唯一节点是“ nunit.framework”。因此,使用和不使用适配器的测试参考看起来都一样。