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

Trying to run Specflow tests but error returned - Unit Test Provider already specified

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

我有一个 Visual Studio 2019 解决方案 (.Net Framework),其中包含与 Specflow 相关的测试。我可以在测试资源管理器中看到我所有的测试,但是当我尝试 运行 其中任何一个时,返回错误 'Unit test provider already specified'。我的测试 运行ner 最初是 Specflow.SpecRun 但我已经删除了对此的所有引用并且现在使用 Specflow.MsTest - 这允许我将我的测试用例与 Azure DevOps 中的一个相关联。只有在进行此更改后,我才会收到这些错误。

我已经搜索了我的解决方案,但不再有任何对 SpecRun 的引用;也没有构建错误。 'Enable SpecflowSingleFileGenerator' 设置设置为 False,我有一个 app.config 文件但没有 specflow.json 文件 - 我读到只有 .NET Core 项目需要它。

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

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

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

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