【问题标题】:Trying to run Specflow tests but error returned - Unit Test Provider already specified尝试运行 Specflow 测试但返回错误 - 已指定单元测试提供程序
【发布时间】:2020-04-14 16:54:26
【问题描述】:

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

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

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

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

【问题讨论】:

  • 我也有同样的情况,重新启动 Visual Studio 就可以了。我现在有 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 的任何引用。我将在同一个解决方案中创建一个新项目并安装所需的包,然后复制我的所有文件,看看这是否能临时解决我的问题

标签: c# selenium mstest specflow


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    当我从 nUnit 迁移到 MsTest 时,我遇到了这个问题。我想为提到的 cmets 添加更多步骤

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-01
      • 1970-01-01
      • 2021-02-10
      • 2023-03-14
      • 1970-01-01
      • 2016-03-23
      相关资源
      最近更新 更多