首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在每个方法之后检测Rspec测试失败

在每个方法之后检测Rspec测试失败
EN

Stack Overflow用户
提问于 2011-08-11 21:27:07
回答 3查看 5.7K关注 0票数 22

我正在尝试运行一个RSpec测试,我想要检测after方法中的测试是否失败。我现在有这样的东西:

代码语言:javascript
复制
after(:each) do
  cc = ConnectController.new()
  cc.update(<TEST-SERVER-CONTROLLER>, <TC-RESULT-ID>, result?)    
end

正如您所看到的,我需要替换result?函数,以检测测试是否失败,并获取有关失败的测试的信息。

EN

回答 3

Stack Overflow用户

发布于 2014-10-02 23:31:28

除了丹尼尔的回答之外,在Rspec3中删除了示例方法(有关更多信息,请参阅here )。

你将不得不做类似这样的事情:

代码语言:javascript
复制
after(:each) do |example|
  if example.exception
    # ...
  end
end
票数 21
EN

Stack Overflow用户

发布于 2012-06-12 02:46:25

编辑:此答案仅对RSpec 2有效。对于RSpec 3,请参阅geekazoid的答案。

after each块在公开example的类的上下文中运行,您可以通过检查example上的exception方法来检测故障,如下所示:

代码语言:javascript
复制
after(:each) do
  if example.exception != nil
    # Failure only code goes here
  end
end
票数 13
EN

Stack Overflow用户

发布于 2017-11-28 12:45:36

我在寻找如何检查after(:context) / after(:all)块中一组中的所有示例是否都成功。这是我想出来的:

代码语言:javascript
复制
after(:all) do |example_group|
  all_groups = example_group.class.descendants
  failed_examples = all_groups.map(&:examples).flatten.select(&:exception)

  if failed_examples.empty?
    # runs only if there are no failures
    do('something')
  end
end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7026691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档