我实际上使用qunit配置grunt以使用jenkins运行单元测试(遵循本教程:http://shashikantjagtap.net/javascript-continuous-integration-jenkins-qunit-grunt/)但实际上我被此错误阻止了:
ReferenceError:未定义gruntConfig 警告:任务" qunit_junit"未找到。使用--force继续。
因警告而中止。
我的devDependencies:
module.exports = function (grunt) {
grunt.registerTask('default', ['qunit_junit', 'qunit']);
grunt.loadNpmTasks('grunt-contrib-qunit');
grunt.loadNpmTasks('grunt-qunit-istanbul');
gruntConfig.qunit = {
src: ['static/test/index.html'],
options: {
coverage: {
src: ['static/js/**/*.js'],
instrumentedFiles: 'temp/',
htmlReport: 'report/coverage',
coberturaReport: 'report/',
linesThresholdPct: 20
}
}
};
grunt.loadNpmTasks('grunt-qunit-junit');
gruntConfig.qunit_junit = {
options: {
dest: 'report/'
}
};
}
和我的Gruntfile.js:
#define _GNU_SOURCE
#include <sys/ptrace.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/wait.h>
int main(int argc, char *argv[]) {
if (argc == 1) return 1;
pid_t pid = atoi(argv[1]);
if (ptrace(PTRACE_SEIZE, pid, NULL, NULL) == -1) return 1;
siginfo_t sig;
return waitid(P_PID, pid, &sig, WEXITED|WNOWAIT);
}
任何人遇到此错误或想知道如何修复它?
答案 0 :(得分:1)
查看示例Gruntfile:
module.exports = function(grunt) {
grunt.initConfig({
jshint: {
files: ['Gruntfile.js', 'src/**/*.js', 'test/**/*.js'],
options: {
globals: {
jQuery: true
}
}
},
watch: {
files: ['<%= jshint.files %>'],
tasks: ['jshint']
}
});
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.registerTask('default', ['jshint']);
};
答案 1 :(得分:1)
如ReferenceError
中所述:您尚未定义gruntConfig
对象。添加var gruntConfig = {};
以定义对象。
module.exports = function (grunt) {
grunt.registerTask('default', ['qunit_junit', 'qunit']);
grunt.loadNpmTasks('grunt-contrib-qunit');
grunt.loadNpmTasks('grunt-qunit-istanbul');
//Add the below line to defined the object.
var gruntConfig = {};
gruntConfig.qunit = { ... }
//code ...
}