Я не могу найти способ отлаживать (пропустить) код JavaScript при запуске тестов Jasmine с помощью Resharper в Visual Studio 2012. Я попытался выполнить тесты с браузером (Chrome), но тестовый бегун закрывает порт, как только тест и поэтому я не могу поставить точку останова в коде. Также попробовал работать в Internet Explorer и поставить контрольные точки в Visual Studio, но он не будет прикреплен к процессу. В моем тесте есть много///ссылочных скриптов, которые Resharper автоматически включает в тестовый бегун, но я не хочу вручную делать это для каждого теста, который я хочу отлаживать. Пожалуйста, помогите мне понять это. Если у вас есть тест жасмина, который терпит неудачу, тогда как вы его отлаживаете?
Как вы отлаживаете тесты Жасмина с помощью Resharper?
Ответ 1
Попробуйте использовать ключевое слово debugger
. Просто добавьте следующую строку в код, который вы хотите отлаживать (возможно, в спецификации):
debugger;
Он вызывает любую доступную функциональность отладки. Он не работает в IE, но работает очень хорошо в Chrome (вы написали, что используете его, поэтому я думаю, это достаточно для отладки).
Конечно, после этого обязательно удалите ключевое слово debugger
! Возможно, нет простого способа избежать этого в производственном коде вообще (в случае, если вы будете использовать его не только в spesc), но если вы заинтересованы в этом SO question может быть полезно.
Ответ 2
Поскольку я не получил debugger;
для работы, я нашел другое решение.
Добавив в мой тест следующее, resharper не будет уведомлен о завершении теста, чтобы мы могли установить точки останова отладки в открывшемся браузере (я использую хром) и обновить страницу (F5).
jasmine.getEnv().currentRunner_.finishCallback = function () {};
Поскольку Jasmine 2.0 вам нужно использовать:
ReSharperReporter.prototype.jasmineDone = function () { };
Остановите тесты в окне resharper testrunner, когда закончите.
Также это можно сделать для QUnit
QUnit.moduleDone = function(){}
Ответ 3
Как я писал на Отладка тестов жасмина с помощью resharper и phantom js
У меня есть отладчик; для работы, установив IE 11 в качестве моего тестового браузера в параметрах ReSharper. Самое приятное в том, что вы можете установить свои точки останова в версии кода Visual Studio и установить и отладить с помощью Visual Studio. Вам действительно не нужно взаимодействовать с браузером.
Ответ 4
Я знаю, что это старый вопрос, и этот ответ немного не соответствует теме, но если вы не хотите вмешиваться в обратный вызов, контекстное меню тестового бегуна Chutzpah может вам помочь. Запустите тесты в resharper/phantomjs (так что вы не получите взрыва вкладок), и отладка в Chrome (или в вашем предпочтительном браузере) была нажата правой кнопкой мыши: