JBehave - 运行 单个场景
JBehave - run a single scenario
我的情况是这样的:
我有一个包含多个场景的 JBehave 故事。每个场景都会写入一些文件,检查它们是否符合预期。然后下一个场景的 @BeforeScenario
导致框架删除输出文件。
当某些场景失败时,我想 运行 只隔离那个场景——这样我就可以在输出文件被删除之前方便地检查它(同时也是为了提高速度)。其他人也问过同样的问题,并被告知 "use Meta Filtering" - http://jbehave.org/reference/stable/meta-filtering.html - 这似乎是正确的工具。
但我不想用 @skip
去注释所有其他场景。我只想用 @wip
注释一个场景,而 运行 只是那个测试。
我试过这个:
Narrative:
An example story
Scenario: A scenario I don't want to run this time
Given foo
When bar
Then baz
Meta: @wip
Scenario: A scenario that is work in progress
Given foo
When bar
Then baz
... 然后我 运行 配置了 Embedder
:
embedder.useMetaFilters(Arrays.asList("+wip"));
这会导致整个故事被跳过,因为故事不匹配:
1 stories excluded by filter: +wip
但是,如果我用@wip
注释故事,那么这两种情况都是运行,因为它们都继承了wip
元属性.
是否有实现此目的的巧妙方法?
问题很简单,您的 Meta:
声明属于 below Scenario:
header.
所以:
Scenario: A scenario that is work in progress
Meta: @wip
Given foo
When bar
Then baz
现在embedder.useMetaFilters(Arrays.asList("+wip"));
将实现你想要的。
我的情况是这样的:
我有一个包含多个场景的 JBehave 故事。每个场景都会写入一些文件,检查它们是否符合预期。然后下一个场景的 @BeforeScenario
导致框架删除输出文件。
当某些场景失败时,我想 运行 只隔离那个场景——这样我就可以在输出文件被删除之前方便地检查它(同时也是为了提高速度)。其他人也问过同样的问题,并被告知 "use Meta Filtering" - http://jbehave.org/reference/stable/meta-filtering.html - 这似乎是正确的工具。
但我不想用 @skip
去注释所有其他场景。我只想用 @wip
注释一个场景,而 运行 只是那个测试。
我试过这个:
Narrative:
An example story
Scenario: A scenario I don't want to run this time
Given foo
When bar
Then baz
Meta: @wip
Scenario: A scenario that is work in progress
Given foo
When bar
Then baz
... 然后我 运行 配置了 Embedder
:
embedder.useMetaFilters(Arrays.asList("+wip"));
这会导致整个故事被跳过,因为故事不匹配:
1 stories excluded by filter: +wip
但是,如果我用@wip
注释故事,那么这两种情况都是运行,因为它们都继承了wip
元属性.
是否有实现此目的的巧妙方法?
问题很简单,您的 Meta:
声明属于 below Scenario:
header.
所以:
Scenario: A scenario that is work in progress
Meta: @wip
Given foo
When bar
Then baz
现在embedder.useMetaFilters(Arrays.asList("+wip"));
将实现你想要的。