我试图通过一个grunt任务在live-server上运行我的portractor测试。 我已经安装了live-server(https://www.npmjs.com/package/live-server)和grunt-execute。通过grunt执行,我设法用两个步骤中的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',
}
}
},
如果我用注册任务触发它,量角器测试运行得很好,只有我必须确保实时服务器首先运行。 所以当然我想把两个合二为一的命令启动实时服务器,然后运行我的量角器测试。 所以我试过了:
grunt.registerTask('runProtractor', [
'execute:liveserver',
'protractor'
]);
但不幸的是,这不起作用,实时服务器启动然后......没有任何反应,量角器测试没有运行。我尝试更改一些实时服务器参数,如打开和等待,但没有任何运气。也没有错误消息。
正如我之前单独说过的那样,任务工作都很好(有两个命令窗口,首先在一个中启动live-server,然后在另一个中启动量角器)
是否有人知道为什么在实时服务器启动后我没有继续?
答案 0 :(得分:1)
实时服务器的执行会阻止所有后续任务,因为它没有完成",即为了使任务仍在运行,这就是为什么它不会继续执行下一个任务。您可以使用grunt-concurrent并行运行任务。