运行 实时服务器上的量角器通过 grunt

Run protractor on live-server via grunt

我正在尝试通过一个 g运行t 任务 运行 我的 portractor 在实时服务器上进行测试。 我已经安装了 live-server (https://www.npmjs.com/package/live-server) 和 g运行t-execute。使用 g运行t execute 我设法通过 g运行t 命令分两步启动 live-server:

1st 我创建了一个节点脚本 (liveServer.js)

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

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

2 我在我的 g运行t 文件中创建了一个任务来启动脚本: (在 grunt.initConfig)

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

并注册了触发它的命令:

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

现在,如果我 运行 "grunt live" 在我的命令行 live-server 启动,打开浏览器,我可以浏览我的应用程序。

我还在我的 g运行t 文件中创建了一个量角器任务,它也工作得很好。
(在 grunt.initConfig)

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

如果我用注册的任务触发它,量角器测试 运行 就好了,只是我必须先确保 live-server 是 运行ning。 所以我当然想将这两个结合在一个启动 live-server 的命令中,然后 运行s 我的量角器测试。 所以我尝试了:

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

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

正如我之前所说,任务都很好(使用两个命令 windows,首先在一个中启动实时服务器,然后在另一个中启动量角器)

有人知道为什么我的实时服务器启动后不继续吗?

live-server 的执行会阻塞所有后续任务,因为它不会 "finish",即 g运行t 任务仍然是 运行ning,这就是为什么它不会继续执行下一个任务。您可以并行使用 grunt-concurrent 到 运行 个任务。