2

在运行grunt server开发时,如何单独使用grunt qunit任务来运行测试。尝试传递["test/**/*.html"]all属性时,但无法运行并返回 ( Warning: 0/0 assertions ran (0ms) Use)

看起来,它不会触发 phantomjs 实例,也不会找到这些补丁。所以我尝试了以下

    grunt.initConfig({
     ....  

        qunit: {
            all: {
                options: {
                    urls: ['http://localhost:<%= connect.options.port %>/test/tests/foo.html']
                }
            }
        }
    ....

});

它仅在手动包含所有测试 html 页面时才有效(如示例中所示)。
问题是我的问题是,即使在使用 grunt 服务器时 grunt qUnit 也能正常工作。我怎样才能让["test/**/*.html"]语法正常工作。我相信一定有更好的方法可以工作!此外,如何使用 grunt.file.expand 以编程方式添加匹配文件以在 grunt qunit 任务中运行。

4

1 回答 1

1

我做了这样的事情:

grunt.initConfig({
  ...
  'qunit': {
        'files': ['test/**/*.html']
  }
  ...
});
...
// Wrap the qunit task
grunt.renameTask('qunit', 'contrib-qunit');
grunt.registerTask('qunit', function(host, protocol) {
    host = host || 'localhost';
    protocol = protocol || 'http';
    // Turn qunit.files into urls for conrib-qunit
    var urls = grunt.util._.map(grunt.file.expand(grunt.config.get('qunit.files')), function(file) {
        return protocol + '://' + host + '/' + file;
    });
    var config = { 'options': { 'urls' : urls } };
    grunt.config.set('contrib-qunit.all', config);
    grunt.task.run('contrib-qunit');
});
于 2013-08-09T19:21:01.743 回答