2013-06-25 4 views
30

У меня есть довольно простой 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

Ужасно для этого вопроса – ErichBSchulz

+2

Да. Если я правильно помню, я злился на этот титул, пытаясь понять его слишком долго. Хорошо, что Google ищет больше, чем названия. – blockloop

+0

@ brettof86 Кто-то искал название этого вопроса. Очевидно, что он не имеет ничего общего с HTML при чтении самого вопроса. Я собирался попытаться заменить название, но, подумав немного, я не думаю, что я достаточно разбираюсь в этом вопросе. (Что мне непонятно, если вы ищете простой механизм отчета или хотите получить какую-то форму вывода из самого теста.) Не могли бы вы его пересмотреть? – jpmc26

ответ

64

Зафиксирована установка karma-spec-reporter

npm install karma-spec-reporter --save-dev

и добавив в моем karma.config.js

reporters: ['spec'],

Согласно karma documentation

По умолчанию, Карма нагрузокll NPM-модули, которые являются братьями и сестрами, и их имя соответствует карма- *.

но некоторые пользователи должны были добавить следующие их конфигурации

plugins: ['karma-spec-reporter']

+6

Это не сработало для меня, пока я не указал в файле karma.conf.js karma-spec-reporter как плагин; это как мои плагины массив выглядит плагин: [ «карма-хром-пусковой», «карма-покрытие», «карма-светлячок-пусковой», «карма-жасмин», «карма-JUnit-репортер» , 'karma-spec-reporter' ], примечание karma-spec-reporter в конце –

+0

Да, вы должны сообщить конфигуратору, что используете этот плагин. – blockloop

+1

Если все ваши плагины начинаются с 'karma-', вам не нужно ссылаться ни на один из них. По умолчанию используется загрузка всех плагинов 'karma- *'. http://karma-runner.github.io/0.12/config/plugins.html –

1

Вот мой рабочий (проект) конфигурации без раздела «плагинов» (на самом деле я не совсем понимаю, почему Я должен нужно указать их ...):

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() ...)) отображаются красиво в консоли.

1

Просто еще одна деталь - если вы держите репортера по умолчанию «прогресс» в karma.config.js, как показано ниже:

reporters: ["progress", "spec"] 

или другой консоли репортер, «спекуляция» выход репортер выиграл» т работы.

Вы должны оставить только «spec» или «spec» с другими репортерами обозревателя. Например:

reporters: ["spec", "coverage"]