У меня есть куча неудачных спецификаций из-за довольно большого архитектурного изменения. Я хотел бы поработать над их исправлением, пометив каждую из них «фокусом».
Есть ли у jasmine.js такая функция? Я поклялся, что однажды прочитал, что это так, но я не вижу этого в документации.
Ответы:
Вы можете запустить одну спецификацию, используя URL для спецификации
Теперь вы можете запустить только всю спецификацию по этому URL
http://localhost:8888?spec=MySpec
и первый тест сhttp://localhost:8888?spec=MySpec+function+1
источник
describe("MySpec", ...)
а не этотdescribe("MySpec blah blah", ...)
:? Похоже, что выполняется сопоставление подстроки.http://localhost:8888?spec=function+1
должен работать тоже (часто не нужно указывать MySpec)fdescribe
,fit
При использовании Karma вы можете включить только один тест с помощью
fit
илиfdescribe
(iit
иddescribe
в Jasmine до 2.1).Это работает только
Spec1
:Это работает только
testA
:источник
fdescribe
иfit
: github.com/jasmine/jasmine/commit/...iit
иddescribe
есть дополнения Кармы, а не Жасмин.xit
иfit
вit
трудно читать и подвержен ошибкам?В ядре начиная с 2.1 с
fit
иfdescribe
.источник
Для тех, кто сталкивается с этим, лучший подход, который вы можете настроить из самого кода, это использовать этот плагин: https://github.com/davemo/jasmine-only
Это позволяет вам установить спецификацию прямо на код, например так:
Было долгое обсуждение, чтобы добавить это в ядро Жасмин, см .: https://github.com/pivotal/jasmine/pull/309
Если вам случится использовать жасмин с помощью Karma / Testacular вы уже должны иметь доступ к
ddescribe()
иiit()
источник
fdescribe
иfit
- "f" означает "сфокусированный". См. Также jasmine.github.io/2.1/focused_specs.htmlЕсть несколько способов сделать это.
Есть: функция Жасмина Сосредоточенные спецификации (2.2): http://jasmine.github.io/2.2/focused_specs.html
Фокусировка спецификаций сделает так, чтобы они были единственными работающими спецификациями. Любая спецификация, заявленная с помощью fit, сфокусирована.
Тем не менее, мне не очень нравится идея редактировать свои тесты (подходить и описывать), чтобы запускать их выборочно. Я предпочитаю использовать бегун тестов, такой как карма, который может отфильтровывать тесты, используя регулярные выражения.
Вот пример использования grunt .
Если вы используете gulp (который является моим любимым средством выполнения задач), вы можете передавать args в gulp -karma с помощью yargs и шаблонов соответствия, установив конфигурацию karma.
Вроде как это:
Смотрите мою суть: https://gist.github.com/rimian/0f9b88266a0f63696f21
Итак, теперь я могу запустить одну спецификацию, используя описание:
Мой локальный тестовый прогон: (выполнено 1 из 14 (пропущено 13))
Также смотрите: https://github.com/karma-runner/karma-jasmine
источник
Вы можете создать все свои спецификации заранее, но отключить их с помощью
xdescribe
иxit
до тех пор, пока вы не будете готовы их протестировать.источник
С помощью автономного Jasmine (2.0.0) в spec_runner.htlm я мог щелкнуть конкретную спецификацию и сосредоточиться на этой спецификации. Я должен был заметить эту функцию ранее.
источник
Не совсем то, что вы просили, но добавление
iit
будет проверять только эту конкретную спецификацию и игнорировать все остальные в файле,ddescribe
работает так же. Таким образом, вы можете сосредоточиться на конкретной спецификации, используяiit
илиddescribe
источник
Это самый упрощенный ответ с практическим примером. Даже в fdescribe вы можете использовать несколько блоков, используя его. F означает фокус.
Также в блоке без описания, который только что описан, вы можете выбрать только определенные блоки, пометив их как подходящие.
Пожалуйста, запустите приведенный ниже код и посмотрите журнал консоли, а также прочитайте комментарии в коде. Прочитайте эту авторскую статью, это тоже помогает. https://davidtang.io/2016/01/03/controlling-which-tests-run-in-jasmine.html
источник