WebDriver&x2B;呼噜量角器
我正在尝试使用WebDriver和量角器运行端到端测试。使用以下工具手动运行时没有问题: webdriver管理器启动 然后 量角器测试UI/e2e/conf.js 现在我想从grunt命令启动它们,所以我尝试使用grunt shell,并用“&&”连接它们。但当WebDriver等待时,测试永远不会启动。以前有人试过吗WebDriver&x2B;呼噜量角器,webdriver,gruntjs,protractor,Webdriver,Gruntjs,Protractor,我正在尝试使用WebDriver和量角器运行端到端测试。使用以下工具手动运行时没有问题: webdriver管理器启动 然后 量角器测试UI/e2e/conf.js 现在我想从grunt命令启动它们,所以我尝试使用grunt shell,并用“&&”连接它们。但当WebDriver等待时,测试永远不会启动。以前有人试过吗 谢谢。您可以安装grunt量角器运行程序 npm install grunt-protractor-runner --save-dev 查看此博客了解详细信息 试着运行gru
谢谢。您可以安装
grunt量角器运行程序
npm install grunt-protractor-runner --save-dev
查看此博客了解详细信息
试着运行grunt--verbose
来查看更多关于发生了什么的细节。grunt shell的分支称为grunt shell spawn(),它允许您异步运行后台进程。在启动SeleniumWebDriver服务器帮助自动化量角器测试过程的情况下,这恰好可以很好地工作。有一些grunt插件专门用于启动webdriver服务器,但根据我的经验,它们都有一些小错误,在测试完成后会导致错误,或者要求您标记一个标志keepAlive:true
,这意味着它不会停止webdriver服务器进程,迫使您按ctrl+c或关闭并重新打开命令提示符当开发人员使用功能测试和持续集成(CI)服务器时,这可能会导致很多问题。Grunt shell spawn具有终止进程的能力,正如您在我的“测试”任务结束时所看到的,这对于保持一致性和易用性来说是非常宝贵的
'use strict';
module.exports = function(grunt) {
grunt.loadNpmTasks('grunt-shell-spawn');
grunt.loadNpmTasks('grunt-protractor-runner');
var path = require('path');
grunt.initConfig({
...
...
...
shell: {
updateserver: {
options: {
stdout: true
},
command: "node " + path.resolve('node_modules/protractor/bin/webdriver-manager') + ' update --standalone --chrome'
},
startserver: {
options: {
stdout:false,
stdin: false,
stderr: false,
async:true
},
command: 'node ' + path.resolve('node_modules/protractor/bin/webdriver-manager') + ' start --standalone'
},
});
grunt.registerTask('test',[
'shell:updateserver',
'shell:startserver',
'protractor:e2e',
'shell:startserver:kill'
]);
你是个救生员!