从多个错误中解救

时间:2016-03-10 18:18:53

标签: ruby error-handling capybara rescue

我有一些错误条件,我想记录并移动,然后继续循环到下一个测试。

错误处理&下面的rescue是方法by_the_test的一部分,next语句在那里;在此之后完成了它的工作。

单独的rescue工作,它会在错误日志中创建一个条目并继续进行下一个测试。可爱。

rescue RSpec::Expectations::ExpectationNotMetError
  $logfile.puts "#{Date.today}:  Error for Row #{$row} - Expected #{@ct_cd}, but got #{@court.text}"

  puts "Error for Row #{$row} - Expected #{@ct_cd}, but got #{@court.text}"

什么时候,我添加了以下额外的rescue语句,并且其中一个测试命中了其中一​​个,rescue无效。

rescue Capybara::ElementNotFound
  $logfile.puts "#{Date.today}:  Error for Row #{$row} - Entry #{@endor_cd} not found"

rescue Capybara::Ambiguous
  $logfile.puts "#{Date.today}:  Error for Row #{$row} - Duplicated entry on record #{@endor_cd}"

我也尝试了以下内容:

rescue RSpec::Expectations::ExpectationNotMetError, Capybara::ElementNotFound, Capybara::Ambiguous

我在日志文件中收到了一般错误消息。

1 个答案:

答案 0 :(得分:0)

第一个救援声明是在正确的地方,第二个&第三个需要在代码中提前移动,因为他们拯救的错误发生在不同的地方。

获得的经验教训 - 检查错误陈述!