Java JBehave-运行单个场景
我的情况是: 我有一个包含多个场景的JBehave故事。每个场景都会写入一些文件,检查它们是否符合预期。然后,下一个场景的Java JBehave-运行单个场景,java,jbehave,Java,Jbehave,我的情况是: 我有一个包含多个场景的JBehave故事。每个场景都会写入一些文件,检查它们是否符合预期。然后,下一个场景的@beforecasenario会导致框架删除输出文件 当某个场景失败时,我只想孤立地运行该场景——这样我就可以在删除输出文件之前方便地检查它(以及速度)。其他人也问了同样的问题,他们被告知“使用元过滤”——这似乎是正确的工具 但我不想用@skip注释其他场景。我只想用@wip注释一个场景,然后只运行那个测试 我试过这个: Narrative: An example stor
@beforecasenario
会导致框架删除输出文件
当某个场景失败时,我只想孤立地运行该场景——这样我就可以在删除输出文件之前方便地检查它(以及速度)。其他人也问了同样的问题,他们被告知“使用元过滤”——这似乎是正确的工具
但我不想用@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.useMetaFilters(Arrays.asList("+wip"));
这会导致跳过整个故事,因为故事不匹配:
1 stories excluded by filter: +wip
但是,如果我用@wip
注释故事,那么这两个场景都会运行,因为它们都继承了wip
元属性
有没有一个简洁的方法来实现这一点?问题很简单,您的元:
声明属于场景:
标题之下
因此:
现在embedder.useMetaFilters(Arrays.asList(“+wip”)代码>将实现您想要的。我通过匹配场景标记和筛选值进行了工作。e、 g.“Meta:@scenario-wip”和embedder.useMetaFilters(Arrays.asList(“+scenario-wip”))。但是在您尝试自定义标记值之前,您应该切换场景和元标记的顺序,以遵循jBehave grammarThat,很可能就是它!是的。试过了,你的评论成了我的答案。
Scenario: A scenario that is work in progress
Meta: @wip
Given foo
When bar
Then baz