如何评论JBehave Story中的故事情节

Vij*_*jay 31 jbehave

我有一个故事情节如下

Scenario: 

Given user is on Login page

When user types login details with xxx as user xxx as passwd and submits

Then dashboard is shown
Run Code Online (Sandbox Code Playgroud)

请指教,如何评论或不做一个线路运行(例如:2线直接3线后不应进行测试)

der*_*eha 37

您想暂时禁用方案中的步骤吗?使用前缀注释该行"!-- ",例如

Given user is on Login page
!-- When user types login details with xxx as user xxx as passwd and submits
Then dashboard is shown
Run Code Online (Sandbox Code Playgroud)

请参阅JBehave上的文档:http://jbehave.org/reference/stable/grammar.html

  • "! - "之后的空格是强制性的. (8认同)

Dav*_*ain 5

我知道这是一个老问题,但我找到了解决方案,并与社区分享:

'!-- '是可取消步骤的标志,表示需要禁用的步骤。

在我们的项目中,我们使用了一个故事解析器:

this.currentConf.useStoryParser(new TransformingStoryParser(this.currentConf.storyParser(), this.transformComment, this.transformCutter));
Run Code Online (Sandbox Code Playgroud)

我们需要将文档放在用户故事中,因此我们对评论和可取消步骤进行了区分:

!-- Then ... => 可取消的步骤(本机方式)

!--| This is a a comment... => 评论

使用 Transformer,在故事被执行之前,评论会从故事中剥离出来。

'|--' 也是如此,一个可取消的例子。我们引入了“|--|”或“切割器”,以防止故事的其余部分被执行。

类 (this.transformComment, this.transformCutter) :

    公共类 ParserTransformingComment 实现 StoryTransformer {

        公共 ParserTransformingComment() {
        }


        /**
         * 禁止评论
         */
        private Rewriter vC = new Rewriter("(?ms)^((!--\\|[^\\r\\n]*)(?:\\r?\\n)?)") {
            @覆盖
            公共字符串替换(){
                System.out.println("忽略:" + this.group(1));            
                返回 ””;
            }
        };

        @覆盖
        公共字符串转换(字符串 pStoryAsText){
            返回 vC.rewrite(pStoryAsText);
        }

    }

    公共类 ParserTransformingCutter 实现 StoryTransformer {    
        公共 ParserTransformingCutter() {
        }

        /**
         * Gestion des '刀具'。
         */
        private Rewriter vS = new Rewriter("(?ms)^(\\|--\\|.*)") {
            @覆盖
            公共字符串替换(){
                System.out.println(">>> Cette section va être ignorée :");
                System.out.println(StringUtils.lineStart("> ",this.group(1)));
                System.out.println("------------");            
                返回 ””;
            }
        };


        @覆盖
        公共字符串转换(字符串 pStoryAsText){
            返回 vS.rewrite(pStoryAsText);
        }

    }

编辑: 从 Jbehave 4.3 开始,即使没有 StoryTransformer,评论也会以更好的方式处理:

!--BlahBlah -- 被 Jbehave 完全忽略
!-- 然后... -- 步骤被忽略(在报告中注册)
!-- Blah blah -- 评论(在报告中注册)

问候,大卫 C.