【问题标题】:Tags Protractor + Jasmine to run set of suites标签 Protractor + Jasmine 运行套件
【发布时间】:2015-11-30 17:33:28
【问题描述】:

我正在尝试找出一种方法来以相同的方式使用,或者更好地说,类似的方式,cucumberJSprotractor 具有的标记选项,但与Jasmine,有没有办法标记不同的场景,例如:@smoke@regression 等。然后在控制台上告诉这些场景运行?

我拒绝使用Cucumber,因为它的支持似乎越来越不稳定!

任何帮助将不胜感激!

【问题讨论】:

    标签: javascript jasmine protractor cucumberjs


    【解决方案1】:

    使用 jasmine2,您可以使用正则表达式过滤测试。也许你可以在你的测试中添加@smoke、@regressions 之类的东西,然后只通过传递 grep 标志来运行这些:

    it('should do stuff @smoke', function() {
      ...
    });
    

    然后通过 grep 标志运行量角器:

    protractor conf.js --grep='@smoke'

    【讨论】:

    • Andres,我在下面对 Alecxe 发表的相同评论怎么样?如果我用 2 个以上的标签进行标记,grep 的行为会如何?比如,“....@smoke @feature1...”我可以过滤:'--grep=@smoke,@feature1'吗?还是会执行两次测试?
    • 我试过 --grep= '@smoke', '@regression' 但它不起作用有什么方法可以执行多个标签吗?
    【解决方案2】:

    grep 的替代方案是使用suites

    suites: {
        smoke: [ 
            "spec1.js",
            "spec2.js",
            "spec3.js"
        ],
    
        regression: [
            "spec4.js",
            "spec5.js",
        ],
    }
    

    然后,运行 protractor 指定 suite 参数:

    protractor conf.js --suite smoke
    protractor conf.js --suite regression
    protractor conf.js --suite smoke,regression
    

    【讨论】:

    • 谢谢,但是,如果我想从烟雾套件中运行隔离的“spec1.js”呢?你如何看待在smoke: like, 'suites: { smoke: [ feature1: "spec1.js" ...' 中再运行一个集合,比如:'protractor conf.js --suite feature1' 这可能吗?如果您认为不是,您有什么建议?
    • @BrunoSoko 尚未对此进行测试,但不确定是否可行:suites: {smoke: {feature1: ["spec1.js"], feature2: ["spec2.js"]}}。然后,您可以尝试以--suites smoke.feature1 运行它们。或者,您可以直接通过 --specs.. 运行规范
    【解决方案3】:

    使用 jasmine 框架运行多标签量角器测试:

    protractor.conf.js --grep '@smoke|@regression'

    【讨论】:

    • 这对现有答案有何改进?
    • 我们可以使用我提到的命令而不是使用套件,似乎很少有人尝试使用 grep 运行多个标签但失败了,所以我分享了这个
    猜你喜欢
    • 2020-07-06
    • 2018-11-02
    • 1970-01-01
    • 1970-01-01
    • 2016-10-11
    • 2014-01-01
    • 2014-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多