В проекте, основанном на проекте 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);
}));