Zor*_*leH 4 webdriver gruntjs protractor
我正在尝试使用WebDriver和Protractor进行端到端测试.使用以下命令手动运行时没问题:webdriver-manager start然后是量角器test-UI/e2e/conf.js
现在我想从一个grunt命令启动它们,所以我尝试使用grunt-shell,用'&&'加入它们.但是当WebDriver等待时,测试永远不会开始.有人试过这个吗?
谢谢.
有一个Grunt-shell的分支叫做Grunt-shell-spawn(Github Repo),它允许你异步运行后台进程.这恰好与启动selenium webdriver服务器以帮助自动化量角器测试过程非常有效.有一些专门用于启动webdriver服务器的grunt插件,但根据我的经验,他们都有小错误,一旦测试完成就会导致错误或要求你标记一个标志keepAlive: true,这意味着它不会杀死webdriver服务器进程强制你进行ctrl + c或关闭并重新打开命令提示符,这可能会在开发人员使用功能测试和持续集成(CI)服务器时导致很多问题.Grunt-shell-spawn能够杀死进程,就像我在'test'任务结束时看到的那样,这对于保持一致性和易用性非常宝贵.
'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'
]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2703 次 |
| 最近记录: |