我正在尝试运行RSpec测试,我想检测after
方法中的测试是否失败。我现在有这样的事情:
after(:each) do
cc = ConnectController.new()
cc.update(<TEST-SERVER-CONTROLLER>, <TC-RESULT-ID>, result?)
end
正如您所看到的,result?
函数是我需要替换的函数,用于检测测试是否失败,以及获取有关失败的测试的信息。
答案 0 :(得分:17)
除了Daniel的回答之外,在Rspec3中删除了示例方法(有关详细信息,请参阅here)。
你必须做这样的事情:
after(:each) do |example|
if example.exception
# ...
end
end
答案 1 :(得分:12)
编辑:这个答案仅对RSpec 2有效。对于RSpec 3,请参阅geekazoid的回答。
每个块之后在暴露example
的类的上下文中运行,并且您可以通过exception
example
检查after(:each) do
if example.exception != nil
# Failure only code goes here
end
end
方法来检测失败:
{{1}}