2017-02-21 3 views
8

UPDATE: tl; dr; Я обновил свои пакеты npm и больше не мог видеть вывод console.log в карме. Похоже, это b/c изменения поведения, которое показывает только console.log на уровне LOG_DEBUG и скрывает его на LOG_INFO. Когда было сделано это изменение и есть ли способ его вернуть?console.log не работает над каким-либо проектом кармы

ОРИГИНАЛ: Когда я запускаю карму из командной строки Windows, я не вижу выход console.log. Раньше я видел это во многих проектах, но теперь он не работает ни в одном из моих проектов. Кажется, это изменилось после того, как я запустил npm update в одном проекте. Я не делал npm update любой другой проект, но все они перестали работать.

Я создал MCVE с чистым проектом, и я все еще вижу такое же поведение. Вот список установленных пакетов в моем чистом проекте (выход из npm list)

C:\...\mvce>npm list 
[email protected] C:\...\mvce 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
`-- [email protected] 

и вот код конфигурации

karma.conf.js 

module.exports = function(config) { 
    config.set({ 
     autoWatch: false, 
     singleRun: true, 
     basePath: ".", 
     frameworks: ["jasmine"], 
     logLevel: "INFO", 
     browsers: ["PhantomJS", "Chrome"], 
     files: ["test.js"] 
    }); 
}; 



test.js 

describe("describe", function(){ 
    it("it", function(){ 
     console.log("test"); 
    }); 
}); 

Примечание Я уже пытался добавить оба эти к моему karma.conf.js. Они не имеют никакого значения.

 client: { 
      captureConsole: true 
     } 

     // or 

     loggers: [ 
      { type: "console" } 
     ] 

Примечание: Я видел this issue на карме GitHub, ни один из предложений не поможет. Кроме того, он описывает настройку w/mocha, я использую жасмин - и официальное обходное решение - использовать captureConsole, который я пробовал.

Я также создал gist по этому вопросу.

окружающей среды информация:

  • для Windows 10 Home ж/все текущие обновления
  • Узел v7.2.1
  • Chrome 56
+0

пытаются изменить в 'его ("это", функция (сделано)' ', а затем сделал()' под console.log – ssuperczynski

+0

@ssuperczynski Без изменений. –

ответ

26

Похоже, карма добавила функцию в v1.5.0 для захват консоли фильтра по уровню журнала. Вот ссылка на git pull request и code changes, показывающие, что произошло. Я не мог найти никаких обновлений в документах об этой новой функции. На основе изменений кода, вот новые правила:

Вы можете настроить browserConsoleLogOptions в вашем файле конфигурации кармы, чтобы указать, какие сообщения должны отображаться на выходе вашего терминала. Установите для свойства level значение максимального уровня, который должен отображаться. Чтобы отобразить все сообщения, установите level в пустую строку.

Для моего случая, мне нужно, чтобы установить это следующим образом:

browserConsoleLogOptions: { 
    terminal: true, 
    level: "" 
} 

UPDATE: Там в open git issue обсуждали это. На самом деле в карме 1.5 есть два изменения.

  1. Они изменили порядок серьезности для сообщений журнала, так что LOG == DEBUG. Используемая серьезность LOG>INFO.Это означает, что любой проект имеет уровень журнала, установленный в INFO, который отображает console.log сообщений в старой версии и не показывает их в новой системе.
  2. Как уже упоминалось выше, они добавили поддержку консоли фильтра по уровню журнала с помощью browserConsoleLogOptions.
+0

Весьма полезно. Спасибо! –

+0

Уф. Спасибо за это! Будущие читатели учли, что этот параметр отображается на верхнем уровне конфигурации, как одноранговый ключ к клиенту, а не внутри него, что подразумевается большей частью обсуждения здесь (https://github.com/karma- бегун/карма-мокко/вопросы/47) – user1272965

Смежные вопросы