【问题标题】:Visual Studio Test Explorer shows Specflow scenarios multiple timesVisual Studio 测试资源管理器多次显示 Specflow 场景
【发布时间】:2017-10-31 11:32:02
【问题描述】:

我在 VS 2015 中使用 SpecFlow 来创建 Selenium Webdriver 自动化测试(尽管这与这个问题无关。)在 Visual Studio 之外,我使用 nunit3-console.exe 运行测试。

在 VS 内部,我的 App.config 设置为 <unitTestProvider name="SpecRun+NUnit" />

我的问题与场景在测试资源管理器中的显示方式有关。如果我创建一个功能文件“FooTest.feature”,其中包含带有标签@mytag 的单个场景“添加 foo 数字”,当我按特征分组时,这就是测试资源管理器中显示的内容:

或者如果我按班级分组,我会得到:

我对此有任何控制权吗?或者这就是它的工作方式?理想情况下,我只想查看“mytag”条目。 (或类别 [mytag]。只是不是全部!)

【问题讨论】:

    标签: visual-studio-2015 specflow nunit-3.0


    【解决方案1】:

    使用 SpecRun+NUnit,您可以在 SpecFlow+Runner (SpecRun) 和 NUnit 的代码隐藏文件中生成单元测试。 Visual Studio 找到了它们,所以你得到了双倍的结果。 你有这个配置是有原因的吗?为什么需要 NUnit 测试? 如果您使用的是 SpecFlow+Runner,则只需将其配置为 SpecRun

    【讨论】:

    • 好问题。我正在使用 nunit 控制台从持续集成中运行测试,并且在我的一些测试中使用了一些特定于 nunit 的功能。但这可能是我在尝试认为需要它时尝试过的那些事情之一。我将尝试在没有该设置的情况下运行,看看是否有任何影响。也许值得问一个问题:什么时候有人需要使用 SpecRun+NUnit?
    • 如果您想使用 nunit 控制台运行测试,我认为 +NUnit 是必需的,因为如果我将 unitTestProvider 更改为 SpecRun 就会停止工作。也许 TestExplorer 显示只是我必须忍受的东西。
    • 如果你配置了 SpecRun,你必须使用 specrun.exe 命令行来执行测试。 SpecRun.Runner 包包含一个 VS 测试适配器,以便您在测试资源管理器中查看测试。但看起来你不想使用 SpecFlow+Runner,而是 NUnit。在这种情况下,您只需将 unittestprovider 配置为 NUnit。在这种情况下,您需要添加 NuGet 包 NUnit3TestAdapter。这包括 NUnit 的 VS 测试适配器。在这种情况下,我会从您的项目中删除所有 SpecRun 包。
    • @Joel 作为 SpecFlow+Runner 的开发人员,我很想知道您正在使用哪些 NUnit 特定功能。也许跑步者中已经有可用的。
    • 安德烈亚斯,感谢 cmets。不久前我开始使用 SpecRun,但在尝试与 TeamCity 集成时遇到了一些困难。我会试着回忆一下那是什么,然后回复你。如果我今天开始,我可能不需要切换到 NUnit。我的测试产生了一堆 nunit2 格式的 xml 文件,我有一个实用程序可以将它们组合成一个 xml 文件,并且在我的测试运行后我仍然使用 specrun.exe 生成一个 html 报告。
    猜你喜欢
    • 1970-01-01
    • 2016-06-10
    • 1970-01-01
    • 2015-07-01
    • 1970-01-01
    • 2020-05-04
    • 2017-11-29
    • 1970-01-01
    • 2020-06-03
    相关资源
    最近更新 更多