【问题标题】:Run protractor on live-server via grunt通过 grunt 在实时服务器上运行量角器
【发布时间】:2016-01-08 14:32:03
【问题描述】:

我正在尝试通过一项繁重的任务在实时服务器上运行我的移植测试。 我已经安装了 live-server (https://www.npmjs.com/package/live-server) 和 grunt-execute。通过 grunt execute,我设法通过 grunt 命令分两步启动 live-server:

第一次我创建了一个节点脚本(liveServer.js)

var liveServer = require("live-server");

var params = {
    port: 8080,
    host: "localhost",
    open: true,
    wait: 1000
};
liveServer.start(params);

第二,我在我的 grunt 文件中创建了一个任务来启动脚本: (在 grunt.initConfig 中)

execute: {
    liveserver: {
        src: ['liveServer.js']
    },
}

并注册了一个触发它的命令:

grunt.registerTask('live', [
    'execute:liveserver'
]);

现在,如果我在命令行中运行“grunt live”,实时服务器启动,打开浏览器,我可以浏览我的应用程序。

我还在我的 grunt 文件中创建了一个量角器任务,它也可以正常工作。
(在 grunt.initConfig 中)

protractor: {
    options: {
        keepAlive: false,
        noColor: false
    },
    e2e: {
        options: {
            configFile: 'protractor.conf.js',
        }
    }
},

如果我用注册任务触发它,量角器测试运行得很好,只有我必须确保 live-server 首先运行。 因此,我当然想将两者结合在一个命令中,该命令启动实时服务器,然后运行我的量角器测试。 所以我尝试了:

grunt.registerTask('runProtractor', [
    'execute:liveserver',
    'protractor'
]);

但不幸的是,这不起作用,实时服务器启动,然后......什么也没发生,量角器测试没有运行。我尝试更改一些实时服务器参数,例如打开和等待,但没有任何运气。也没有错误消息。

正如我之前分别所说,任务都可以正常工作(使用两个命令窗口,首先在一个中启动 live-server,然后在另一个中启动量角器)

有人知道为什么我在直播服务器启动后没有继续吗?

【问题讨论】:

    标签: node.js gruntjs protractor


    【解决方案1】:

    live-server 的执行会阻塞所有后续任务,因为它没有“完成”,也就是说,任务仍在运行,这就是它不会继续执行下一个任务的原因。您可以使用grunt-concurrent 并行运行任务。

    【讨论】:

    • 谢谢 Camille!,我得到了它与 grunt-concurrent 的合作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-20
    • 1970-01-01
    • 2023-03-14
    • 2014-03-27
    相关资源
    最近更新 更多