小编Cli*_*way的帖子

外部组件的Specflow绑定始终为紫色

我在外部程序集中有绑定(根据此处的specflow文档)
我们需要这个,因为我们正在创建一个可以在我们的任何测试套件中使用的步骤定义的通用库.
它有效,但是某些specflow功能似乎不起作用.
即:
所有步骤都以紫色突出显示(表示它不能与绑定匹配)
如果选择一个步骤并单击F12或右键单击并选择"转到步骤定义",则表示找不到匹配的绑定.
但是,代码运行正常,如果你调试它,你可以从功能文件步进到步骤定义文件,所以看起来问题只有Specflow插件,而不是nuget包?
有谁知道如何解决这一问题?
我上传的视频中使用的测试SLN 这里. Specflow broken转到步骤定义 在此输入图像描述

visual-studio specflow

5
推荐指数
1
解决办法
1362
查看次数

Specflow Contextual断言

我们使用Specflow,目前,我们的大多数断言都是使用Fluent Assertions完成的,例如:
myval.Should().NotBe(null)

一切都运行良好,但在某些情况下,我们希望相同的代码有时断言不确定,有时不会.

例如,假设我们有一个调用方法来安装AUT的步骤.
断言AUT可以正确安装的测试将使用此方法作为WHEN/THEN步骤的一部分.
在这种情况下,如果安装失败,我们希望正常进行并且无法通过测试.
GIVEN The AUT is NOT installed WHEN I install the AUT

但是,对于所有其他测试,可以将相同的方法作为GIVEN步骤的一部分或作为BeforeScenario/BeforeFeature挂钩的一部分调用,并且在该实例中,如果安装失败,则测试应该失败,因为它是不是测试本身失败,而是安装阶段. GIVEN the AUT is installed WHEN I perform function X of the AUT

所以在这个例子中,让我们假设WHEN I install the AUT第一个测试中的步骤定义,以及GIVEN the AUT is installed第二个测试中的步骤定义只是用类似的东西调用辅助方法AppFacade.Install()

当然,我们可以AppFacade.Install()使用条件等垃圾和所有其他辅助方法,但我想知道是否有人有更优雅的解决方案 - 即扩展断言引擎的方式,以便它自动应用这个逻辑 - 我看到没有障碍实现此目的的Specflow方面,您可以检查Specflow上下文对象以检测您所处的步骤类型.
理想情况下,我们希望坚持使用流利断言,但如果这过于复杂化,我们会愿意重新考虑.

c# automated-tests assert specflow fluent-assertions

2
推荐指数
1
解决办法
2349
查看次数