我已经设置了grunt-contrib-qunit。我的Gruntfile.js包含类似这样的内容
qunit: { files: ['test/*.html'] }
现在我可以运行grunt qunit
并运行所有测试。
问题:如何在不运行所有测试的情况下运行单个测试?有没有办法可以从命令行重载files
的值?
答案 0 :(得分:6)
你肯定需要研究grunt-contrib-qunit和grunt-contrib-connect(https://github.com/gruntjs/grunt-contrib-qunit和https://github.com/gruntjs/grunt-contrib-connect),因为tandem会为你提供一个无头模型和一个本地网络服务器。
更新 - 至于只运行一个特定测试,您可以编写类似这样的内容,将测试列为您的qunit任务的单独目标:
grunt.initConfig({
qunit: {
justSomething: ['test/justsomething.html'],
justSomethingElse: ['test/justsomethingelse.html'],
all: ['test/*.html']
}
});
然后你可以拨打grunt qunit:justSomething
或grunt qunit:all
- 这不是特定于qunit,但是 - 请参阅http://gruntjs.com/configuring-tasks
现在,如果您真的想使用目标来指定测试名称,那么您将使用以下内容:
module.exports = function(grunt) {
grunt.loadNpmTasks('grunt-contrib-qunit');
grunt.initConfig({
qunit: {
all: ['test/**/*.html']
}
});
grunt.task.registerTask('foo', 'A sample task that run one test.', function(testname) {
if(!!testname)
grunt.config('qunit.all', ['test/' + testname + '.html']);
grunt.task.run('qunit:all');
});
}
然后拨打grunt foo:testname
。
然而,这并不是特定于qunit - 而是粗略的任务写作。
希望(最终)有所帮助。