在 Test::Unit
中的 ruby 单元测试断言失败后,在执行 teardown
之前,是否有一些简洁优雅的方法来立即执行我的代码?
我正在做一些自动化的 GUI 测试,并希望在出现问题后立即截图。
最佳答案
如果您使用的是 1.9,请不要使用 Test::Unit::TestCase 作为您的基类。对其进行子类化并覆盖#run_test 以进行救援,截取屏幕截图并重新提出:
class MyAbstractTestCase < Test::Unit::TestCase
def run_test( *args )
super(*args)
rescue
snapshot()
raise
end
end
或者,我认为这实际上是最简洁的方法,您可以使用 before_teardown Hook :
class MyTestCase < Test::Unit::TestCase
add_teardown_hook do |tc|
screenshot() unless tc.passed?
end
end
这不适用于 1.8 的测试/单元,但适用于 1.9 中的最小测试。
关于 ruby 单元测试 : run some code after each failed test,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9838988/