В проекте, основанном на проекте angular -seed, я запускаю модульные тесты с ./scripts/test.sh --log-level debug
, но ни одно из сообщений журнала, которое я вижу, не приходит из моего приложения. Как я могу их увидеть? В моем приложении я регистрируюсь с помощью $log
.
Как видеть $log-вызовы в терминале при выполнении модульных тестов angularjs с кармой?
Ответ 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);
}));