Нужен правильный репортер для кармы жасмина
У меня довольно простой файл karma.config.js
basePath = '../';
files = [
JASMINE,
JASMINE_ADAPTER,
'js/lib/angular*.js',
'test/lib/angular/angular-mocks.js',
'js/**/*.js',
'test/unit/**/*.js'
];
autoWatch = true;
browsers = ['PhantomJS'];
Когда я запускаю karma start config/karma.conf.js --single-run
, я получаю следующий вывод
$ karma start config/karma.conf.js --single-run
[2013-06-24 23:47:08.750] [DEBUG] config - autoWatch set to false, because of singleRun
INFO [karma]: Karma server started at http://localhost:9876/
INFO [launcher]: Starting browser PhantomJS
INFO [PhantomJS 1.9 (Mac)]: Connected on socket id LwMoWxzIbSUuBsvIqB_m
PhantomJS 1.9 (Mac): Executed 6 of 6 SUCCESS (0.073 secs / 0.02 secs)
Я искал что-то, чтобы рассказать мне, как получить результат тестов, которые регистрируются (например, SUCCESS Unit: services myService should behave
)
Единственный способ увидеть результаты тестов - открыть Chrome и нажать "Debug", а затем показать консоль инструментов разработчика. Я хочу, чтобы сообщения выходили на терминал, но я не могу понять, как это сделать.
Ответы
Ответ 1
Исправлено установкой karma-spec-reporter
npm install karma-spec-reporter --save-dev
и добавив это мой karma.config.js
reporters: ['spec'],
Согласно документация по карме
По умолчанию Karma загружает все модули NPM, которые являются братьями и сестрами, и их имя соответствует карме - *.
но некоторым пользователям пришлось добавить следующее в свою конфигурацию
plugins: ['karma-spec-reporter']
Ответ 2
Вот моя рабочая (проектная) конфигурация без раздела "плагины" (на самом деле я не совсем понимаю, почему мне нужно их указывать...):
package.json
"devDependencies": {
[...]
"grunt-karma": "~0.9.0",
"karma": "~0.12.24",
"karma-jasmine": "~0.2.3",
"karma-chrome-launcher": "~0.1.5",
"karma-phantomjs-launcher": "~0.1.4",
"karma-spec-reporter": "0.0.13"
}
karma.conf.js
module.exports = function (config) {
config.set({
frameworks: ['jasmine'],
reporters: ['spec'],
browsers: ['PhantomJS']
});
};
Gruntfile.js
karma: {
options: {
configFile: 'karma.conf.js',
files: [
'app/libs/angular.js',
'app/libs/angular-resource.js',
'app/libs/angular-route.js',
[...]
'app/modules/**/*-spec.js'
]
},
unit: {
singleRun: true
}
}
Теперь, когда я запускаю grunt karma
, сообщения из файлов *-spec.js
(describe('message', function() ...)
) отображаются на консоли.
Ответ 3
Еще одна деталь - если вы сохраняете "прогресс" репортера по умолчанию в karma.config.js, как показано ниже:
reporters: ["progress", "spec"]
или другой репортер консоли, выход репортера "spec" не будет работать.
Вы должны оставить только "spec" , или "spec" с другими репортерами браузера. Например:
reporters: ["spec", "coverage"]