Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在调试模式(Rubymine Cumber)下运行时,如果某个步骤失败,如何使测试暂停而不是跳过,而不使用断点?_Ruby On Rails_Cucumber_Rubymine - Fatal编程技术网

Ruby on rails 在调试模式(Rubymine Cumber)下运行时,如果某个步骤失败,如何使测试暂停而不是跳过,而不使用断点?

Ruby on rails 在调试模式(Rubymine Cumber)下运行时,如果某个步骤失败,如何使测试暂停而不是跳过,而不使用断点?,ruby-on-rails,cucumber,rubymine,Ruby On Rails,Cucumber,Rubymine,我正在使用RubyMine6.0使用ruby编写cucumber测试,我对它非常陌生 当我运行一个测试而某个步骤没有通过时,rubymine跳过该步骤并使场景失败 当我运行数百个测试时,这对我来说是非常有意义的,我希望现在就这样 但是,在调试模式下运行测试时,如何使测试在失败的步骤或特定代码行上暂停? 有没有办法在台阶失效之前在台阶上设置一个断点,然后踏入台阶 我希望测试在失败的特定点暂停,让我来接管 谢谢, RK我熟悉的所有测试框架中的所有断言都会在未满足预期或断言在测试中失败时引发某些类型的

我正在使用RubyMine6.0使用ruby编写cucumber测试,我对它非常陌生

当我运行一个测试而某个步骤没有通过时,rubymine跳过该步骤并使场景失败

当我运行数百个测试时,这对我来说是非常有意义的,我希望现在就这样

但是,在调试模式下运行测试时,如何使测试在失败的步骤或特定代码行上暂停? 有没有办法在台阶失效之前在台阶上设置一个断点,然后踏入台阶

我希望测试在失败的特定点暂停,让我来接管

谢谢,
RK

我熟悉的所有测试框架中的所有断言都会在未满足预期或断言在测试中失败时引发某些类型的异常。RubyMine允许您配置异常断点,以便在引发特定类型的异常时暂停执行

我刚刚用Ruby2.1和最新的rspec试用了RubyMine6.0.2。根据Rspec的源代码,当未满足预期时,Rspec会引发Rspec::Expectations::ExpectationNotMetError,但由于某些原因,RubyMine不会在该断点上停止-它不工作

另一个对我有效的解决方案是在rspec的源代码文件中设置一个常规断点:rspec-expections-2.14.0/lib/rspec/expections/fail_with.rb,在fail_with方法中-当任何断言/期望失败时调用此方法


我相信你可以用Cucumber做类似的事情:只需调试断言方法的源代码并在那里设置断点。

我找到了这个问题的解决方案。找到了一个名为PRY的gem。它连接到调试器并在该失败位置暂停测试。我现在可以接手查看页面有什么问题。测试需要通过cmd运行。我使用了一个名为pry的gem,并在我的hooks文件中使用了这段代码。这解决了我的问题。如果$debug&&scenario.failed,在执行| scenario |之后?捆绑、撬动端