У меня есть тестовая спецификация, в которой describes
класс и внутри него разные, contexts
каждый с различными it
блоками.
Есть ли способ context
временно отключить ?
Я попытался добавить pending "temporarily disabled"
вызов в самом верху в том, что context
я хочу отключить, и я увидел что-то ожидающее, когда я запускал спецификацию, но затем он просто продолжал запускать остальные тесты.
Вот что у меня было:
describe Something
context "some tests" do
it "should blah" do
true
end
end
context "some other tests" do
pending "temporarily disabled"
it "should do something destructive" do
blah
end
end
end
но, как я уже сказал, он просто запустил тесты под ожидающим вызовом.
Поиск привел меня к этой ветке списка рассылки, в которой создатель (?) Rspec говорит, что это возможно в rspec 2, которым я пользуюсь. Думаю, это сработало, но не дало желаемого эффекта в виде отключения всех следующих тестов, о чем я думаю, когда вижу pending
звонок.
Есть альтернатива или я не так делаю?
describe 'XXXXX' do .... end
describe 'XXXXX' do
. Сработал как шарм, спасибо @Pyro!Используйте фильтры исключения . С этой страницы: В вашем
spec_helper.rb
(илиrails_helper.rb
)В вашем тесте:
Когда я запускаю "rspec ./spec/sample_spec.rb --format doc"
Тогда вывод должен содержать «группа 2, пример 1».
И вывод не должен содержать «группа 1, пример 1».
И вывод не должен содержать «группа 1, пример 2».
источник
Посмотрите, что вы об этом думаете:
Когда я отключаю что-то «на время», мне нравится видеть причины с моими отложенными элементами. Они служат небольшими комментариями / TODO, которые представляются регулярно, а не скрываются в комментариях или исключенном примере / файле.
Переход
it
наpending
илиxit
выполняется быстро и легко, но я предпочитаю хэш-конструкцию. Он предоставляет вам документацию по каждому запуску, является добавляемым (не меняет description / context / it, поэтому я должен решить, что использовать снова позже), и так же легко удаляется, если решение принято или блокировщик удален. .Это работает одинаково для групп и отдельных примеров.
источник
pending:
иskip:
с rspec 3.6.0. Мне кажется, это лучшее решение. в ожидании rspec3 все еще запускает тесты, ноskip
нет (однако вы применяетеskip
).другой. https://gist.github.com/1300152
используйте xdescribe, xcontext, xit, чтобы отключить его.
Обновить:
Начиная с rspec 2.11, он по умолчанию включает xit. так что новый код будет
использование
источник
Используйте ожидание вместо описания. Если ваш блок:
Вы можете пропустить весь блок:
источник
источник
Просто чтобы объяснить, что происходит с вашим кодом. Включая его там, где он есть, он просто оценивается (и, следовательно, запускается), когда файл загружается во время запуска. Однако вам нужно, чтобы он запускался при запуске тестов. Вот почему в ответах предлагалось поместить
pending
(RSpec 2) илиskip
(RSpec 3) вbefore
блок.источник