32

我有一个故事情节如下

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

请告知,如何评论或不运行一行(例如:2行不应该在1直接3行之后进行测试)

4

4 回答 4

38

You want to temporarily disable a step in your scenario? Comment the line using the prefix "!-- ", such as

Given user is on Login page
!-- When user types login details with xxx as user xxx as passwd and submits
Then dashboard is shown

The space right after the !-- is mandatory. Thanks @flaz14

See documentation on JBehave: http://jbehave.org/reference/stable/grammar.html

于 2013-01-23T11:44:41.070 回答
5

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

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

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

this.currentConf.useStoryParser(new TransformingStoryParser(this.currentConf.storyParser(), this.transformComment, this.transformCutter));

我们需要将文档放入用户故事中,因此我们在评论和可取消的步骤之间做出了区分:

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

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

使用转换器,在故事执行之前,评论会从故事中删除。

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

类(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 '切割者'。
         */
        私有重写器 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 忽略
!-- Then ... -- 忽略步骤(在报告中注册)
!-- Blah blah -- 评论(在报告中注册)

问候,大卫 C.

于 2018-12-03T14:04:58.460 回答
2

如果您使用的是 Eclipse IDE,那么您可以使用快捷键Ctrl+T来评论单个/多个故事线。

于 2017-10-31T12:58:01.630 回答
1

!--当用户使用 xxx 作为用户 xxx 作为密码输入登录详细信息并提交时使用此选项。注意:对于注释“ !--”空间是强制性的,否则它将执行该步骤。

于 2018-07-13T05:39:05.700 回答