2015-10-10 63 views
1

我想通过一个咕噜任务在现场服务器上运行我的portractor测试。 我已经安装了live-server(https://www.npmjs.com/package/live-server)和grunt-execute。随着咕噜执行我设法在2个步骤与咕噜命令启动直播服务器:通过咕噜在现场服务器上运行量角器

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

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

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

第二个我创建了一个任务,我咕噜文件启动脚本: (在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' 
]); 

但不幸的是,这并不工作,实时服务器开始,然后......没有任何反应,量角器测试无法运行。我尝试改变一些活的服务器参数,如打开和等待,但没有任何运气。也没有错误消息。

正如我以前说过单独的任务工作都很好(有两个命令窗口,首先在一开始直播服务器,然后在其他量角器)

没有任何人有一个线索,为什么我不后继续活服务器已启动?

回答

1

活服务器的执行会阻塞所有后续任务,因为它没有“完成”,即咕噜任务仍在运行,这就是为什么它不会继续执行下一个任务。您可以使用grunt-concurrent并行运行任务。

+0

谢谢卡米尔!我使用grunt-concurrent工作。 – Michiel