Запускать тест на селен только в случае неудачи предыдущего теста на селен - PullRequest
3 голосов
/ 10 января 2011

У меня есть несколько блоков 'it' в моем тестовом файле селена (с использованием Ruby и rspec) , которые тестируют различные части моего веб-приложения.Каждый блок 'it' прекращает выполнение и переходит к следующему блоку 'it' в случае сбоя любого из условий или кода.

  • Есть ли способ запустить блок 'it' только в случае сбоя предыдущегоили вызвать функцию, чтобы отреагировать на неудачный тест?
  • Есть ли лучший способ выполнить то, что я хочу сделать, без использования блока 'it'?

Пример блока 'it'

it "should load example.com" do
  page.open("http://example.com")
  page.wait_for_page_to_load(25)
end

1 Ответ

1 голос
/ 11 января 2011

Мне не нравится мое текущее решение, и я думаю, что есть лучший способ сделать это, но пока ...

  • обернуть оригинальный тестовый код, который был в блоке 'it' в блоке begin rescue
  • введите код для ответа на сбой в разделе восстановления

.

it "should load example.com" do
  begin
    page.open("http://example.com")
    page.wait_for_page_to_load(25)
    "wow".should == "cool"
  rescue Exception => e
    // code that responds to failed test
  end
end

Почему мне это не нравится

  • Я чувствую себя грязно, когда пишу такой тестовый код (кажется, что это неправильно!)
  • rspec сообщает о проходе, если код спасения также не сработал
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...