javascript - 多次运行 grunt 任务直到失败

标签 javascript gruntjs protractor

连续多次运行相同的 grunt 任务直到失败的规范方法是什么?

<小时/>

我想保持问题的通用性,但这里有一个具体的用例:

我们有大量用 Protractor 编写的端到端测试,我们在 grunt-protractor-runner 的帮助下通过 grunt 运行这些测试。和 grunt-contrib-connect 。我们想要做的是保持 connect 任务运行(从 dist 目录提供服务的网络服务器),同时循环 protractor > 直到失败(或/和最多 N 次)。任务:

connect: {
    test: {
        options: {
            base: 'dist',
            port: 9001
        }
    },
},

protractor: {
    options: {
        keepAlive: true,
        noColor: false
    },
    local: {
        options: {
            configFile: "test/e2e/config/local.conf.js"
        }
    }
},

grunt.registerTask('e2e:local', [
    'connect:test',
    'protractor:local'
]);

在这里,我们希望执行一次 connect:test 并执行多次 protractor:local

最佳答案

结果就像将相同的任务添加到任务数组中 N 次一样简单(仍然不确定我们是否可以以某种方式避免指定 N 并无限期地运行该任务直到失败)并且,因为默认情况下 grunt 在“快速失败”模式下工作,整个任务将在第一次失败时失败。在我们的例子中:

grunt.registerTask('e2e:local', function () {
    var tasks = ['connect:test'];

    var N = 100;
    for (var i = 0; i < N; i++) {
        tasks.push('protractor:local')
    }

    grunt.task.run(tasks);
});

N 这里是硬编码在任务内部的,但可以“从外部”作为 grunt option 传递。 .

关于javascript - 多次运行 grunt 任务直到失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36960934/

相关文章:

javascript - 根据主机名定义参数

linux - 获取计算机用户名

jquery - 在 jquery 插件中使用相对 API Url 的最佳方法

angularjs - 测试前端时重置单独的后端服务

javascript - 我什至无法让 $().text 正常工作。反而输出一大串代码

javascript - ng如果不更新 DOM

javascript - 无法在 puppeteer Node js 中启动 chrome

jasmine - 如何阻止 Jasmine 的beforeAll block 中的测试执行?

javascript - 当我运行我为移动网站(Angular)编写的 Protractor 脚本时,Chrome 和模拟器都会自动关闭

javascript - 数据未显示在选择标签中