Как видеть $log-вызовы в терминале при выполнении модульных тестов angularjs с кармой?

В проекте, основанном на проекте angular -seed, я запускаю модульные тесты с ./scripts/test.sh --log-level debug, но ни одно из сообщений журнала, которое я вижу, не приходит из моего приложения. Как я могу их увидеть? В моем приложении я регистрируюсь с помощью $log.

Ответ 1

Сработало! Если бы я использовал console.log напрямую, это сработало бы, но теперь, когда я использую $log, мне пришлось исправить его в beforeEach (похоже, по умолчанию он не был связан с помощью angularjs):

$provide.value('$log', console);

Ответ 2

Спасибо. Как уже упоминалось, тесты могут вводить console для $log, используя $provide. Для потомков $provide недоступен через inject(function(...) { ... }), но вместо этого необходимо ввести в аргумент функции module:

beforeEach(module('myapp', function($provide) {
  // Output messages
  $provide.value('$log', console);
}));

Ответ 3

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

beforeEach(module('myapp'));

beforeEach(module('myapp', function($provide) {
  // Output messages
  $provide.value('$log', console);
}));