Tags 当使用NUnit Console Runner和SpecFlow运行多个标记时,我会得到不正确的结果
这是我之前关于设置标记和设置这些标记中的变量的问题的后续: 我已经设置了一些变量来帮助填充NUnit测试,但是我发现当NUnit运行程序找到适合第一个标记的测试时,测试将使用第二个标记的设置来运行它。因为标签对我来说很重要,不仅要知道要运行什么测试,还要知道要使用什么变量,这就给我带来了问题 因此,如果我有以下标签: @首先Tags 当使用NUnit Console Runner和SpecFlow运行多个标记时,我会得到不正确的结果,tags,categories,specflow,nunit-console,Tags,Categories,Specflow,Nunit Console,这是我之前关于设置标记和设置这些标记中的变量的问题的后续: 我已经设置了一些变量来帮助填充NUnit测试,但是我发现当NUnit运行程序找到适合第一个标记的测试时,测试将使用第二个标记的设置来运行它。因为标签对我来说很重要,不仅要知道要运行什么测试,还要知道要使用什么变量,这就给我带来了问题 因此,如果我有以下标签: @首先 @first@second @第二 如果我跑@second,一切都很好。如果我运行@first,我会得到任何只有@first fine的场景,但是当我同时运行@first@
@first@second
@第二
如果我跑@second,一切都很好。如果我运行@first,我会得到任何只有@first fine的场景,但是当我同时运行@first@second的场景时,场景会运行,因为@first在那里,但是它使用@second的参数。由于我是通过NUnit控制台运行DLL,并且测试是通过SpecFlow编写的,所以我不确定问题可能出在哪里
有人对设置这样运行的测试有什么建议吗?您不是很具体,但听起来您有这样一个功能文件:
@first
Scenario: A - Something Specific happens under the first settings
Given ...etc...
@second
Scenario: B - Something Specific happens under the second settings
Given ...etc...
@first @second
Scenario: C - Something general happens under the first and second settings
Given ...etc...
[BeforeFeature("first")]
public static string FirstSettings()
{ ... }
[BeforeFeature("second")]
public static string SecondSettings()
{ ... }
通过运行“first”类别中的所有测试,您似乎正在选择要在NUnit中运行的测试
如果按如下方式设置事件定义:
@first
Scenario: A - Something Specific happens under the first settings
Given ...etc...
@second
Scenario: B - Something Specific happens under the second settings
Given ...etc...
@first @second
Scenario: C - Something general happens under the first and second settings
Given ...etc...
[BeforeFeature("first")]
public static string FirstSettings()
{ ... }
[BeforeFeature("second")]
public static string SecondSettings()
{ ... }
如果执行场景C,则将在它之前执行FirstSettings()
和SecondSettings()
。这与是否使用@second
类别选择要在NUnit下运行的测试无关
这几乎可以肯定是您看到第二个设置应用于您的测试的原因,这两个标记-我希望第二个设置会覆盖第一个设置,对吗
对于设置这样的测试,我唯一的建议是,将事件等绑定到特定的标记可能很有用,但应该尽可能少地使用。相反,让您的单个步骤定义可重用,并尽可能使用
给定的步骤设置您的测试环境。是的,就是这样。我已经问了好几次了,但忘了把细节放在这里。但你是对的,这就是我正在做的,因为我有两个环境,我想在它们上运行测试,但它们有不同的配置,我必须研究给定的步骤,但在两个环境上的测试完全相同,我尝试的方式似乎是最简单的。我真的在尝试建立我对specflow的实际知识。如果你想把你的问题作为新问题或补充来分享,我很乐意提出一些想法。