2016-07-27 143 views
-1

鉴于我执行命令状rspec的失败

expect(['x', 'y', 'z']).to be_empty

我怎样才能在测试失败时执行一个命令,例如,把我失败的测试的内容转换成csv文件测试具有特定于该测试中的数据的行名称。我能想到的要做到这一点

最好的办法是

begin 
    expect(['x', 'y', 'z']).to be_empty 
rescue RSpec::Expectations::ExpectationNotMetError => e 
    #output to csv 
    raise e 
end 

然而,这并不觉得这样做最彻底的方法。

另一个选择是将这个放在黄瓜的失败挂钩上,但是我会失去指定行名的能力,或者需要事先定义行名,这也感觉很奇怪。

有没有更清洁,更精确的方法去做到这一点?

注:这些测试正在与黄瓜

回答