通过grunt任务和npm测试将cli参数传递给casperjs

时间:2013-09-15 16:44:52

标签: npm gruntjs casperjs

我正在使用npm test运行测试 - 它实际上运行了一个笨拙的任务grunt casperjs

casperjs:{
            options:{},
            files:
                ['./test_index.js',
                './test_map_regression.js',
                './test_index_get_gush.js'] /

        },

使用grunt-casperjs-plugin以使用slimerjs和phantomjs自动进行测试,两者都在Travis-ci的casperjs下运行。

为了做到这一点,我需要将引擎作为变量从命令行传递。类似的东西:

casperjs --engine=slimerjs test_suite.js

问题:我找不到从grunt cli传递选项的方法(我假设npm命令行选项会委托给grunt。正确吗?)到files数组

我试图添加:

var engine = grunt.option('engine') || 'phantomjs';
    engine = '--engine='+engine;

然后在文件数组中执行:

files:['./test_index.js '+engine,
    './test_map_regression.js '+enging,
    './test_index_get_gush.js '+engine]

但似乎文件数组必须在没有添加args的情况下获得真正的文件名。

如果能解决这个问题,我会很高兴。

1 个答案:

答案 0 :(得分:1)

我没有对此进行过测试,但是查看grunt-casperjs source,看起来好像您希望将引擎作为选项传递。

所以,这样的事情应该有效:

casperjs:{
    options: {
        'engine': 'slimerjs'
    },
    files: [
        './test_index.js',
        './test_map_regression.js',
        './test_index_get_gush.js'
    ]
}