Запустите пропущенные тесты rspec и потерпите неудачу, если они пройдут

Допустим, у меня есть несколько тестов:

spec/code_spec.rb:

require "rails_helper"

RSpec.describe Code do
  xit { Code.evaluate("Twitter.search") }
  xit { Code.evaluate("Slack.send") }
  xit { Code.evaluate("Twitter.send") }
end

Я получил:

~/s/d/code> rspec spec/code_spec.rb

Randomized with seed 54828

Code
  example at ./spec/code_spec.rb:5 (PENDING: Temporarily skipped with xit)
  example at ./spec/code_spec.rb:6 (PENDING: Temporarily skipped with xit)
  example at ./spec/code_spec.rb:4 (PENDING: Temporarily skipped with xit)

Pending: (Failures listed here are expected and do not affect your suite's status)

  1) Code 
     # Temporarily skipped with xit
     # ./spec/code_spec.rb:5

  2) Code 
     # Temporarily skipped with xit
     # ./spec/code_spec.rb:6

  3) Code 
     # Temporarily skipped with xit
     # ./spec/code_spec.rb:4


Finished in 0.00251 seconds (files took 3.32 seconds to load)
3 examples, 0 failures, 3 pending

Randomized with seed 54828

Мне бы хотелось, чтобы rspec выполнял тесты и терпел неудачу, если они пройдены, в идеале сообщая мне, что мне нужно их отменить.

Является ли это возможным?

потерпят неудачу, если они пройдут?

dbugger 07.03.2024 18:27

Вот для чего нужен ожидающий: «Когда ожидающий пример будет пройден, он будет помечен как неудавшийся, чтобы сообщить вам, что его больше не следует помечать как ожидающий».

Stefan 07.03.2024 18:42
Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Шаг 1: Создание приложения Slack Чтобы создать Slackbot, вам необходимо создать приложение Slack. Войдите в свою учетную запись Slack и перейдите на...
2
2
69
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете добавить pending: 'pending reason' к описанию теста

все описано здесьhttps://www.joshmcarthur.com/til/2019/05/27/pending-block-examples-with-rspec.html

этот тест будет запущен rspec, но не завершится провалом всего набора тестов

it 'adds 1 + 1 and equals 3', pending: true do
  expect(1 + 1).to eq 3
end

но этот тест завершится неудачно, потому что ошибка не возникла

it 'adds 1 + 1 and equals 2', pending: true do
  expect(1 + 1).to eq 2
end
pending также указывает причину, по которой пример находится на рассмотрении, что может предоставить полезный контекст будущим программистам (включая вас в будущем). Например, it 'does a thing', pending: "see issue #1234" do
Schwern 07.03.2024 20:27

Ниииииииайс, спасибо, pending также работает как метод внутри тестов, как и skip, например. pending "search is not defined"

Dorian 08.03.2024 05:03

и вместо того, чтобы делать pending: true, я могу делать :pending

Dorian 08.03.2024 05:03

Использование варианта метода работает лучше всего для меня, так как я могу просто удалить всю строку, когда закончу (более чистые различия git).

Stefan 08.03.2024 15:07

Другие вопросы по теме