나는 Karma CoffeeScript 코드 커버리지 전 처리기에 문제가있을 수 있다고 생각합니다. 아니면 내가 뭘 잘못하고 있는지 모르겠다! 그래서 나는 당신에게 StackOverflow를 찾아왔다. 기본적으로 필자는 karma 테스트 세트를 lcov 형식으로 코드 커버리지를 제공하도록 설정하고 있으므로 CodeClimate로 보내 줄 수 있습니다. 나는 그것을 사용하여 내 테스트 스위트 (사용) 작업을했지만, 지금은 오류를 제외하고는 아무것도 얻을 수없는 것 같습니다. 내 프로젝트는 레일 프로젝트이고 파일은 자산 파이프 (예 : name.js.coffee 파일)에 의해 사전 처리되도록 설정되어 있지만 커버리지 전 처리기에 포함 시키면 사전 처리하는 것처럼 보이지만 오류가 발생합니다 모든 파일에. 예를 들어, 무엇인가가 함수로 처리 될 것이고, 함수는 예약어 등이라고 말할 것입니다. 그래서 그들은 여전히 그 구문을 적절히 추측하고 사용하고있는 coffeescript 파일이라고 생각합니다. 난 그냥 coffeescript 전처리기를 사용하여 처리하려고 할 때 coffeescript 오류가 발생합니다. 도움? 예를 들어 사양 및 JS 파일을 여기카르마와 CoffeScript 및 코드 Coverage
// Karma configuration
// Generated on Sat Aug 02 2014 00:12:00 GMT-0600 (MDT)
module.exports = function (config) {
config.set({
// base path that will be used to resolve all patterns (eg. files, exclude)
basePath: __dirname,
// frameworks to use
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
frameworks: ['jasmine'],
plugins: [
'karma-jasmine',
'karma-firefox-launcher',
'karma-coffee-preprocessor',
'karma-coverage'
],
// list of files/patterns to load in the browser
// TODO: this is not requiring files correctly, need to fix TR-335
files: [
'vendor/assets/javascripts/karma-jasmine/lib/jasmine.js',
'vendor/assets/javascripts/karma-jasmine/src/adapter.js',
'vendor/assets/javascripts/angular/angular.js',
'vendor/assets/javascripts/angular-resource.min.js',
'vendor/assets/javascripts/angular-mocks/angular-mocks.js',
'vendor/assets/javascripts/jquery-2.1.1.min.js',
'vendor/assets/javascripts/jquery.dataTables.min.js',
'vendor/assets/javascripts/d3/d3.js',
'vendor/assets/javascripts/nvd3/nv.d3.js',
'vendor/assets/javascripts/angularjs-nvd3-directives/dist/angularjs-nvd3-directives.js',
'vendor/assets/javascripts/ui-bootstrap-tpls-0.11.0.min.js',
'vendor/assets/javascripts/*.*js',
'spec/javascripts/*_spec.js*',
'spec/javascripts/**/*_spec.js*',
'app/assets/javascripts/app.js.coffee',
'app/assets/javascripts/controllers/root_controller.js.coffee',
'app/assets/javascripts/controllers/lecture_ctrl.js.coffee',
'app/assets/javascripts/factories/user.js.coffee',
'app/assets/javascripts/factories/orgtrainuser.js.coffee',
{ pattern: 'app/assets/javascripts/*.js.*',
watched: true,
included: false,
served: false },
'spec/javascripts/**/*_spec.coffee'
],
// list of files to exclude
exclude: [
'app/assets/javascripts/application.js.coffee.erb'
],
// preprocess matching files before serving them to the browser
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
preprocessors: {
'app/**/*.*.coffee': ['coverage']
},
// test results reporter to use
// possible values: 'dots', 'progress'
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
reporters: ['progress', 'coverage'],
coverageReporter: {
type : 'lcovonly',
dir : 'coverage/',
subdir: 'javascript'
},
'scripts': {
'test': './node_modules/.bin/karma start --single-run --browsers Firefox'
},
// web server port
port: 9876,
// enable/disable colors in the output (reporters and logs)
colors: true,
// level of logging
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
logLevel: config.LOG_INFO,
// enable/disable watching file and executing tests whenever any file changes
autoWatch: true,
// start these browsers
// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
browsers: ['Firefox'],
// Continuous Integration mode
// if true, Karma captures browsers, runs the tests and exits
singleRun: false
});
};
그리고있다 :
describe 'OrgTrainUser',() ->
factory = undefined
$httpBackend = undefined
beforeEach module('trackTrainApp')
beforeEach inject(($injector) ->
$httpBackend = $injector.get('$httpBackend');
factory = $injector.get('OrgTrainUser');
)
it 'queries with username',
() ->
$httpBackend.expectGET('/lectures/123/users.json')
.respond([ {
id: '123',
first_name: 'test',
last_name: 'bob'
} ])
result = factory.query({ id: '123' })
$httpBackend.flush()
expect(result[0].id).toEqual('123')
'use strict'
angular.module('trackTrainApp')
.factory('OrgTrainUser',
[ '$resource', ($resource) ->
user = $resource "/lectures/:id/users.json",
{
id: "@id"
},
{
query:
method: "GET"
isArray: true
show:
method: 'GET'
isArray: true
}
user
])
여기
npm test
> [email protected] test /Users/bytenel/workspace/tracktrain
> ./node_modules/.bin/karma start --single-run --browsers Firefox
INFO [karma]: Karma v0.12.24 server started at http://localhost:9876/
INFO [launcher]: Starting browser Firefox
ERROR [preprocessor.coverage]: Syntax error on line 7: indentation is ambiguous
4 : $document.ready(()->
5 : $scope.loading = false;
6 : )
7 : ])
^ :~~~~^
8 :
9 :
at /Users/bytenel/workspace/tracktrain/app/assets/javascripts/controllers/root_controller.js.coffee
ERROR [preprocessor.coverage]: Syntax error on line 66: indentation is ambiguous
63 : user.selected = false
64 : $scope.selectedUsers = []
65 : ]
66 : )
^^ :~~~~~~~~~~~~^
at /Users/bytenel/workspace/tracktrain/app/assets/javascripts/controllers/lecture_ctrl.js.coffee
ERROR [preprocessor.coverage]: Syntax error on line 9: indentation is ambiguous
6 : user = $resource "https://stackoverflow.com/users/:id.json", { id: '@id' }
7 :
8 : user
9 : ])
^ :~~~~~~~~~~~~~~^
at /Users/bytenel/workspace/tracktrain/app/assets/javascripts/factories/user.js.coffee
ERROR [preprocessor.coverage]: Syntax error on line 5, column 1: unexpected '\n' (\u000A)
2 :
3 : angular.module('trackTrainApp')
4 : .factory('OrgTrainUser',
5 : [ '$resource', ($resource) ->
^ :~^
6 : user = $resource "/lectures/:id/users.json",
7 : {
8 : id: "@id"
at /Users/bytenel/workspace/tracktrain/app/assets/javascripts/factories/orgtrainuser.js.coffee
ERROR [preprocessor.coverage]: Syntax error on line 9: indentation is ambiguous
06 : if $flashNotice[0] && $flashNotice[0].childNodes && $flashNotice[0].childNodes[3].id != 'flash_alert'
07 : $flashNotice.slideUp animationTime
08 : return;
09 : ), 2000;
^^ :~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
10 : return;)(jQuery);
at /Users/bytenel/workspace/tracktrain/app/assets/javascripts/flashes.js.coffee
ERROR [preprocessor.coverage]: Syntax error on line 17: indentation is ambiguous
14 : ajax: $.fn.dataTable.pipeline({
15 : url: 'lectures/list.json',
16 : pages: 5
17 : }),
^^ :~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
18 : columns: [
19 : { data: 'name' },
20 : { data: 'start_date' },
at /Users/bytenel/workspace/tracktrain/app/assets/javascripts/lectures.js.coffee
ERROR [preprocessor.coverage]: Syntax error on line 20, column 2: unexpected '(DEDENT)' (\uEFFE)
17 : return attachmentEntry;
18 :
19 :
20 : $('#add-attachment').on 'click', (event) ->
^^ :~~^
21 : event.preventDefault
22 : attachmentEntryCount = $('.attachment-entry').length
23 :
at /Users/bytenel/workspace/tracktrain/app/assets/javascripts/training_history.js.coffee
INFO [Firefox 32.0.0 (Mac OS X 10.9)]: Connected on socket dwjoowbAkz3xKEQ4pVCT with id 85121913
WARN [web-server]: 404: /Users/bytenel/workspace/tracktrain/app/assets/javascripts/controllers/lecture_ctrl.js.js
WARN [web-server]: 404: /Users/bytenel/workspace/tracktrain/app/assets/javascripts/factories/user.js.js
WARN [web-server]: 404: /Users/bytenel/workspace/tracktrain/app/assets/javascripts/controllers/root_controller.js.js
WARN [web-server]: 404: /Users/bytenel/workspace/tracktrain/app/assets/javascripts/factories/orgtrainuser.js.js
WARN [web-server]: 404: /Users/bytenel/workspace/tracktrain/app/assets/javascripts/controllers/root_controller.js.js
WARN [web-server]: 404: /Users/bytenel/workspace/tracktrain/app/assets/javascripts/controllers/lecture_ctrl.js.js
WARN [web-server]: 404: /Users/bytenel/workspace/tracktrain/app/assets/javascripts/factories/user.js.js
WARN [web-server]: 404: /Users/bytenel/workspace/tracktrain/app/assets/javascripts/factories/orgtrainuser.js.js
Firefox 32.0.0 (Mac OS X 10.9) ERROR
SyntaxError: missing ; before statement
at /Users/bytenel/workspace/tracktrain/spec/javascripts/controllers/leture_ctrl_spec.coffee:1
Firefox 32.0.0 (Mac OS X 10.9) ERROR
SyntaxError: missing ; before statement
at /Users/bytenel/workspace/tracktrain/spec/javascripts/factories/org_train_user_factory_spec.coffee:1
Firefox 32.0.0 (Mac OS X 10.9) ERROR
SyntaxError: missing ; before statement
at /Users/bytenel/workspace/tracktrain/spec/javascripts/factories/user_factory_spec.coffee:1
npm ERR! weird error 1
npm ERR! not ok code 0
내 karma.conf.js 파일입니다 : 여기
는 오류입니다 그리고 관련 오류 :
ERROR [preprocessor.coverage]: Syntax error on line 9: indentation is ambiguous
06 : if $flashNotice[0] && $flashNotice[0].childNodes && $flashNotice[0].childNodes[3].id != 'flash_alert'
07 : $flashNotice.slideUp animationTime
08 : return;
09 : ), 2000;
^^ :~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
10 : return;)(jQuery);
이 파일에서 엄격 모드를 사용하여 관련이있을 수 있습니까?
기본적으로 플러그인이 작동하지 않습니까? – noname
기본적으로 .... 나는 커피에 대한 경멸을 이해하지 못한다. 그러나 열의가 사라져서 그동안 많은 죽은 프로젝트가 남아있는 것을 볼 수있다. –
과열주기는 암캐입니다. 나에게 알려 줘서 고마워, 나는 그것이 컴파일러 문제라고 생각했다. 불행히도 플러그인을 제거해야 할 것입니다. – noname