Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WebDriver&x2B;呼噜量角器_Webdriver_Gruntjs_Protractor - Fatal编程技术网

WebDriver&x2B;呼噜量角器

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

我正在尝试使用WebDriver和量角器运行端到端测试。使用以下工具手动运行时没有问题: webdriver管理器启动 然后 量角器测试UI/e2e/conf.js

现在我想从grunt命令启动它们,所以我尝试使用grunt shell,并用“&&”连接它们。但当WebDriver等待时,测试永远不会启动。以前有人试过吗


谢谢。

您可以安装
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'
]);

你是个救生员!