Gruntjs 使用XVFB+;centos 7 linux发行版上的Grunt runner

Gruntjs 使用XVFB+;centos 7 linux发行版上的Grunt runner,gruntjs,protractor,xvfb,headless-browser,Gruntjs,Protractor,Xvfb,Headless Browser,下面是我的Grunfile.js。我可以使用“grunt-grandor:run”命令在UI上运行量角器测试 但是,当我尝试运行命令“grunt-pregrator xvfb”以便在无头模式下运行测试时,浏览器仍会启动,测试的执行方式与使用grunt-pregrator:run命令相同 我期望的是测试在后台运行 module.exports = function (grunt) { require('load-grunt-tasks')(grunt); grunt.initConfig(

下面是我的Grunfile.js。我可以使用“grunt-grandor:run”命令在UI上运行量角器测试

但是,当我尝试运行命令“grunt-pregrator xvfb”以便在无头模式下运行测试时,浏览器仍会启动,测试的执行方式与使用grunt-pregrator:run命令相同

我期望的是测试在后台运行

module.exports = function (grunt) {

require('load-grunt-tasks')(grunt);

  grunt.initConfig({
      protractor: {
      options: {
          keepAlive: true,
          configFile: "../spike-protractor/app/Conf/conf.js",
          noColor: false,
          args: {
            baseUrl: 'https://xxx/xxx/'
          }
      },
      run: {}
  },
  shell: {
      xvfb: {
          command: 'Xvfb :99 -ac -screen 0 1600x1200x24',
          options: {
              async: true

          }
      }
  },
  env: {
      xvfb: {
          DISPLAY: ':99'
      }
  }
  });

  grunt.loadNpmTasks('grunt-protractor-runner');
  grunt.loadNpmTasks('grunt-shell-spawn');
  grunt.loadNpmTasks('grunt-env');
  grunt.loadNpmTasks('grunt-protractor-webdriver');
  grunt.registerTask('protractor-chrome', ['protractor:chrome']);

  grunt.registerTask('protractor-xvfb', [   
    'shell:xvfb',
    'env:xvfb',
    'protractor:run',
    'shell:xvfb:kill'
  ]);

}
我试着从grunt.registerTask中注释行代码“dragrator:run”,运行grunt dragrator xvfb会得到下面的输出,根据代码是正确的。这执行得如此之快,就好像什么也没发生一样。我认为在实现无头测试的配置/代码中缺少一些东西

运行“shell:xvfb”(shell)任务

运行“env:xvfb”(env)任务

运行“shell:xvfb:kill”(shell)任务

完成了


如何使用xvfb+grunt+量角器进行无头测试?

如果您想要无头Chrome或Firefox测试、视频录制、VNC live preview、local dashboard.html等功能,那么您的用例可能更实用

您可以从一行开始:

curl -sSL https://raw.githubusercontent.com/dosel/t/i/p | bash -s start
和/或观看演示:


您没有指定正确运行conf.js。 拆下零件

    grunt.registerTask('protractor-chrome', ['protractor:chrome']);
从问题中指定的GrunFile.js。 编辑gruntfile.js并添加以下内容:

    grunt.registerTask('protractor-xvfb', [
        'shell:xvfb',
        'env:xvfb',
        'protractor:run',
        'shell:xvfb:kill'
    ]);
一旦您添加了它,如果您想在不使用xvfb的情况下运行,请使用命令“grunt-progrator:run”


如果要使用xvfb运行,请使用命令“grunt-gragrator-xvfb”

我找到了一个解决方法,可以使用下面的命令并指定conf.js-

xvfb运行--服务器参数='-屏幕0,1600x1200x24'量角器app/Conf/Conf.js

这样做可以让我在无头模式下运行测试


即使您在项目中没有使用Grunt,您也可以直接执行npm安装xvfb并使用此命令。。。将其传递给teamcity命令行参数,它也将在那里工作。

您好,感谢您的回复。但是,我遵循了这些步骤,在运行grunt量角器xvfb时,它仍然会启动浏览器,并且不会在headless模式下运行测试