【问题标题】:Specflow is not executing tests in Visual Studio 2019Specflow 未在 Visual Studio 2019 中执行测试
【发布时间】:2020-03-17 11:08:18
【问题描述】:

我对 Specflow 有一个非常奇怪的行为,该行为仅适用于一名团队成员。其他人都没有问题。

VS2019 测试运行程序正确显示所有规范流测试,但是当“运行所有测试”时,没有任何测试被执行,但信息“没有可用的源”。 Specflow 正在正确生成所有 cs 文件。

我尝试创建一个包含一个单元测试项目的全新解决方案,向其中添加规范流,创建一个功能,生成步骤并运行所有测试。一切都按预期工作,测试已执行并成功。然后我将这个新的 csproj 添加到另一个未执行测试的解决方案中。奇怪的是,“新测试”在旧解决方案中也不起作用。

当项目团队的其他人克隆我们的存储库时,安装 specflow 对他们来说一切正常。在这一解决方案中只有这一台机器。我已经尝试重新安装 VS2019。我们检查了解决方案中的每个项目都具有相同的目标平台,我们尝试删除了一些 %TEMP% 文件,但到目前为止没有任何效果。

NuGet 包:

  • SpecFlow v3.0.225
  • SpecFlow.MsTest v3.0.225
  • SpecFlow.Tools.MsBuild.Generation v3.0.225

【问题讨论】:

  • 您安装了哪个版本的 SpecFlow,以及您在该测试项目中安装了哪些 NuGet 包?
  • 我们正在使用版本为 3.0.225 的 specflow 的 nuget 包以及具有相同版本号的 SpecFlow.MsTest 和 SpecFlow.Tools.MsBuild.Generation。 VS 集成是 VS2019 的最新版本。奇怪的是,在他机器上的另一个项目中,一切正常,但不适用于一个特定的解决方案。
  • 您是否尝试过删除解决方案中的.vs 文件夹?这些也是一堆 Visual Studio 临时文件。
  • 我实际上在一个旧的单元测试项目中遇到了同样的问题,但是重新创建该项目为我解决了这个问题。你基本上试过了,它仍然没有用。此人是否对 .sln.csproj 文件有任何未提交的更改?也许尝试删除现有的克隆并重新克隆?
  • 我尝试删除 .vs 文件夹,但没有任何效果。没有未提交的更改,与其他所有人相同的分支。我可能会尝试删除 csproj 并重新添加所有文件,看看是否可行。

标签: c# visual-studio unit-testing specflow


【解决方案1】:

我和你有同样的问题:

  • VS 2019 v16.6.2
  • SpecFlow v3.30.2
  • SpecFlow.Tools.MsBuild.Generation v3.3.30
  • SpecRun.Runner v3.3.14
  • SpecRun.Specflow.3-3-0 v3.3.14
  • MSTest.TestAdapter v2.1.2
  • MSTest.TestFramework v2.1.2

我尝试了这个论坛和 Github SpecFlow 支持的许多技巧,但都没有奏效。 当我查看日志文件时,在 TestResults 文件夹中,我看到了一些有趣的东西:

我基本上登录了该链接(使用登录 VS 的相同帐户)并开始运行测试。

希望能解决您的业务伙伴问题。我知道这些事情会让任何人发疯。

【讨论】:

  • 好像他们不想让你使用 SpecFlow。为什么要将此消息隐藏在一个隐藏的文本文件中,而不表示您应该阅读它?
  • 非常好!记住日志文件夹被命名为“TestResults”
【解决方案2】:

我在使用 MSTest 作为单元测试提供程序的 SpecFlow 项目中遇到了类似的问题,测试在 Test-Explorer 中可见,但运行它们没有效果。我能够通过安装 NuGet 包 MSTest.TestFramework 来解决我的问题。

【讨论】:

    猜你喜欢
    • 2021-10-09
    • 2020-08-26
    • 2011-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-26
    • 2016-12-21
    • 1970-01-01
    相关资源
    最近更新 更多