У меня есть проект узла, который построен с использованием grunt и браузера, и проверен с использованием кармы и жасмина с помощью браузера-istanbul для покрытия кода.grunt karma покрытие не работает на jenkins, но работает на windows/unix
Задача отлично работает как на окнах, так и на Linux, однако она не работает при работе на jenkins из-за браузера.
Running "karma:coverage" (karma) task 31 01 2017 11:38:48.891:ERROR [framework.browserify]: bundle error 31 01 2017 11:38:48.892:ERROR [framework.browserify]: Error: Line 2: Unexpected token : while parsing file: /a/path/to/a/file.json 31 01 2017 11:38:48.912:INFO [karma]: Karma v1.4.1 server started at http://0.0.0.0:9876/ 31 01 2017 11:38:48.913:INFO [launcher]: Launching browser PhantomJS with unlimited concurrency 31 01 2017 11:38:48.917:ERROR [framework.browserify]: bundle error 31 01 2017 11:38:48.918:ERROR [framework.browserify]: Error: Line 2: Unexpected token : while parsing file: /a/path/to/another/file.json 31 01 2017 11:38:48.922:INFO [launcher]: Starting browser PhantomJS 31 01 2017 11:38:49.561:INFO [PhantomJS 2.1.1 (Linux 0.0.0)]: Connected on socket hd7llziNhpmzkjibAAAB with id 81120883 Warning: Task "karma:coverage" failed. Use --force to continue.
Карма конфигурация для задачи покрытия выглядит следующим образом:
module.exports = function(config) {
config.set({
basePath: '..',
frameworks: [ 'browserify', 'jasmine' ],
files: [
// load dependencies here
{ pattern: 'test/**/*.spec.js', watched: false, included: true, served: true },
{ pattern: 'spec/**/*.json', watched: true, served: true, included: false },
{ pattern: 'spec/**/*.xml', watched: true, served: true, included: false },
{ pattern: 'spec/**/*.html', watched: true, included: false, served: true },
],
preprocessors: {
'test/**/*.spec.js': [ 'browserify' ]
},
reporters: [ 'coverage' ],
colors: true,
logLevel: config.LOG_INFO,
autoWatch: false,
browsers: [ 'PhantomJS' ],
browserify: {
debug: true,
transform: [ 'browserify-shim', 'hbsfy', 'brfs', 'browserify-istanbul', {
ignore: [
'**/test/**',
'**/*.hbs',
'**/*.json',
'**/js/shims/*.js',
],
},
]},
coverageReporter = {
dir: 'coverage',
reporters: [
{type: 'text'},
{type: 'html', subdir: '.'},
{type: 'cobertura', subdir: '.'}
]
},
plugins: [
'karma-phantomjs-launcher',
'karma-jasmine',
'karma-browserify',
'karma-mocha-reporter'
'karma-coverage',
],
singleRun: true
});
};
У меня есть другие проекты, которые работают хорошо с этой конфигурацией, которые не имеют JSon файлов. Есть ли причина, по которой прокрутка браузера не выполняется в файлах * .json на Jenkins, но отлично работает в Windows/Linux. В противном случае здесь есть другие красные флаги?
Мог ли преобразование «Browsify-istanbul» быть преступником здесь?
Удаление тестов, которые тестовые файлы, которые ссылаются * .json файлы решает проблему. Есть ли причина, почему это должно произойти на Дженкинсе, но не на средах? Похоже, что проблема заключается в использовании преобразования browserify-istanbul вместе с другими преобразованиями. –