Grunt +量角器 - 未找到任务“shell:xvfb”

时间:2015-06-12 17:38:05

标签: angularjs gruntjs protractor xvfb

我正在尝试使用grunt来运行Xvfb和我的量角器测试,但是当我执行我的Task protractor-xvfb时,我得到了这个回报:

  

正在运行的任务:protractor-xvfb警告:任务“protractor-xvfb”没有   找到。使用--force继续。

     

因警告而中止。

我的Gruntfile.js:

module.exports = function(grunt) {


    grunt.initConfig({
        protractor: {
            options: {
                keepAlive: true,
                configFile: "protractor.conf.js"
            },
            run: {}
        },

        shell: {
            xvfb: {
                command: 'Xvfb :99 -ac -screen 0 1600x1200x24',
                options: {
                    async: true
                }
            }
        },
        env: {
            xvfb: {
                DISPLAY: ':99'
            }
        }

});


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

// assim funciona
    grunt.registerTask('test', 'Test task.', function() {
        grunt.log.writeln('Lorem ipsum dolor sit amet.');
    });

}

当我执行我的任务测试时,它是成功的,我得到了这个回报:

  

正在运行的任务:测试

     

运行“测试”任务Lorem ipsum dolor坐下来。

     

完成,没有错误。

OBS:我使用没有咕噜声的量角器测试工作正常。返回:

  

在24.753秒完成

     

9次测试,5次断言,0次失败

OBS2:我正在关注这个例子:Running Xvfb from Grunt

2 个答案:

答案 0 :(得分:1)

我解决了我的问题!

首先,我的Gruntfile.js不在我的项目根目录中,我需要在靠近package.json的项目根目录中加载我的插件来运行这些测试。当我添加那些插件加载我的测试失败时,当我的Gruntfile.js走错路径时:

 grunt.loadNpmTasks('grunt-shell-spawn');
 grunt.loadNpmTasks('grunt-env');
 grunt.loadNpmTasks('grunt-protractor-runner');

失败消息:

Registering "grunt-shell-spawn" local Npm module tasks.
>> Local Npm module "grunt-shell-spawn" not found. Is it installed?

Registering "grunt-env" local Npm module tasks.
>> Local Npm module "grunt-env" not found. Is it installed?

Registering "grunt-protractor-runner" local Npm module tasks.
>> Local Npm module "grunt-protractor-runner" not found. Is it installed?
Loading "Gruntfile.js" tasks...OK

我删除了我安装并重新安装的所有咕噜声。

我的Gruntfile在正确的路径中,我可以加载我的插件并使用Grunt + Xvfb + Protractor运行我的测试。

答案 1 :(得分:0)

我不确定这是否是核心问题,但您将shell.xvfb.command设置为代码中包含字符串的数组,而您链接的示例只有一个字符串。