我正在尝试运行一个RSpec测试,我想要检测after
方法中的测试是否失败。我现在有这样的东西:
after(:each) do
cc = ConnectController.new()
cc.update(<TEST-SERVER-CONTROLLER>, <TC-RESULT-ID>, result?)
end
正如您所看到的,我需要替换result?
函数,以检测测试是否失败,并获取有关失败的测试的信息。
发布于 2014-10-02 23:31:28
除了丹尼尔的回答之外,在Rspec3中删除了示例方法(有关更多信息,请参阅here )。
你将不得不做类似这样的事情:
after(:each) do |example|
if example.exception
# ...
end
end
发布于 2012-06-12 02:46:25
编辑:此答案仅对RSpec 2有效。对于RSpec 3,请参阅geekazoid的答案。
after each块在公开example
的类的上下文中运行,您可以通过检查example
上的exception
方法来检测故障,如下所示:
after(:each) do
if example.exception != nil
# Failure only code goes here
end
end
发布于 2017-11-28 12:45:36
我在寻找如何检查after(:context)
/ after(:all)
块中一组中的所有示例是否都成功。这是我想出来的:
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
https://stackoverflow.com/questions/7026691
复制相似问题