C# 正在尝试运行Specflow测试,但返回错误-已指定单元测试提供程序

C# 正在尝试运行Specflow测试,但返回错误-已指定单元测试提供程序,c#,selenium,mstest,specflow,C#,Selenium,Mstest,Specflow,我一直在不同的网站上寻找类似的问题,希望能找到答案,但我没有发现对我有用的东西 我有一个Visual Studio 2019解决方案(.Net Framework),其中包含与Specflow相关的测试。我可以在测试资源管理器中看到我的所有测试,但当我尝试运行其中任何一个测试时,返回的错误是“已指定单元测试提供程序”。我的测试运行程序最初是Specflow.SpecRun,但后来我删除了对它的所有引用,现在使用Specflow.MsTest-这允许我将我的测试用例与Azure DevOps中的一

我一直在不同的网站上寻找类似的问题,希望能找到答案,但我没有发现对我有用的东西

我有一个Visual Studio 2019解决方案(.Net Framework),其中包含与Specflow相关的测试。我可以在测试资源管理器中看到我的所有测试,但当我尝试运行其中任何一个测试时,返回的错误是“已指定单元测试提供程序”。我的测试运行程序最初是Specflow.SpecRun,但后来我删除了对它的所有引用,现在使用Specflow.MsTest-这允许我将我的测试用例与Azure DevOps中的一个关联起来。只有在做了这个更改之后,我才发现这些错误

我已经搜索了整个解决方案,不再有任何对SpecRun的引用;也没有生成错误。“Enable SpecflowSingleFileGenerator”设置设置为False,我有一个app.config文件,但没有specflow.json文件-我了解到只有.NET核心项目才需要这个文件


有没有其他人遇到过上述问题或有什么想法来解决它,因为我有点卡住了。

所以这可能不是最理想的解决方案,但我在同一个解决方案中创建了一个新项目,安装了相同的nuget软件包,并将所有文件/文件夹复制到了新项目中。我删除了以前的项目,清理了解决方案并重新构建。测试显示在测试资源管理器中,并且也成功运行。

当我从nUnit移动到MsTest时,遇到了这个问题。我想在前面提到的评论中再添加几个步骤

  • 检查feature.cs文件,确保它只有
    Microsoft.VisualStudio.TestTools.UnitTesting
    属性,而不是nUnit或specrun
  • 检查是否正在visual studio中使用任何
    local.testsettings
    文件
  • 如果不使用nUnit,请将其从工具和扩展中删除
  • 重新启动VS,清除临时文件夹,清理并重建

  • 我也有同样的想法,重新启动VisualStudio就成功了。我现在有了Specflow、Specflow.MsTest、Specflow.Tools.MsBuild.Generation、MsTest.TestAdapter、MsTest.TestFramework、Microsoft.Net.Test.Sdk、Microsoft.TestPlatform.TestHost您需要清除功能上的自定义工具。我已检查了所有功能的CustomTool属性,该属性为空。我还安装了Microsoft.Net.Test.Sdk、Microsoft.TestPlatform.TestHost,因为缺少这两个。清理解决方案,重建-仍然是相同的错误。我也重新启动了我的计算机,清理并构建了它,但仍然得到了同样的错误。我所能想到的是,在这个组合中还有另一个运行程序,Nunit?我已经查看了我在我的项目中安装的所有NuGet包,我根本看不到任何Nunit的引用。我将在同一个解决方案中创建一个新项目,并安装所需的软件包,然后将我的所有文件复制到另一个解决方案中,看看这是否能解决我的问题