JBehave - 运行一个场景

时间:2015-10-15 10:07:15

标签: java jbehave

我的情况是这样的:

我有一个包含多个场景的JBehave故事。每个方案都会写入一些文件,检查它们是否符合预期。然后,下一个场景的@BeforeScenario会导致框架删除输出文件。

当某些场景失败时,我希望单独运行该场景 - 这样我就可以在输出文件被删除之前(以及速度)方便地检查输出文件。其他人也提出了同样的问题,并被告知“使用Meta过滤” - 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注释 story ,则会运行这两种方案,因为它们都会继承wip元属性。

有没有一种巧妙的方法来实现这一目标?

1 个答案:

答案 0 :(得分:3)

问题只是您的Meta:声明属于 Scenario:标题。

所以:

Scenario: A scenario that is work in progress
Meta: @wip
Given foo
When bar
Then baz

现在embedder.useMetaFilters(Arrays.asList("+wip"));将达到你想要的效果。