如何获取方案名称和参数?specflow

mos*_*aad 8 c# cucumber specflow

问题scenario.getName用于方案的名称.除了参数之外,我还需要获取名称.例如,如果方案是:

Scenario Outline: name of scenario
Given I am on the proper page
When I apply <filter>  with <params>
And I click filter
Then the data should be filtered
Examples:
| filter    | params      |
| Date      | Today       |
| Name      | Some Name   |
Run Code Online (Sandbox Code Playgroud)

我想获得nameOfScenario(Date,Today).

我也在使用C#而不是java

UPDATE

我知道当我用NUnit打开测试用例时,他们会显示为nameOfScenario(Date,Today).Nunit如何做到这一点?

Kot*_*kin 8

随意使用TestContext.CurrentContext.Test.Name- 它肯定会帮助您获得准确的参数化场景名称.

Specflow在运行时不带参数,它是NUnit(或其他单元测试框架)的责任.

至少,您可以探索TestContext.CurrentContext.Test获取参数列表的属性.

  • 应该注意的是,这个答案特指NUnit类`TestContext`.类"Microsoft.VisualStudio.TestTools.UnitTesting.TestContext"没有"CurrentContext"的定义. (3认同)

Sam*_*der 7

您可以使用ScenarioContext.Current.ScenarioInfo.Title获取当前场景的标题,但我认为没有任何方法可以获取参数的名称.

NUnit具有参数名称,因为Specflow在设计时使用这些名称生成单元测试类,它不会在运行时从specflow中获取它们