确保拆卸在 Test::Unit::TestCase 中运行?
我正在使用 Test::Unit::TestCase
编写一些单元测试。目前,我有一个 setup
函数,可以移动和修改磁盘上的一些固定文件和文件夹。 (目前这是一个必要的邪恶。)如果测试崩溃,则不会调用 teardown
方法,从而留下文件和文件夹。下次我运行测试时,它会抱怨这样那样的文件夹已经存在(Errno::EEXIST
),使我不得不停止并删除剩余的文件。
如何确保
teardown
始终运行? (ensure
与其他一些语言中的 finally
的含义相同。)
I'm using Test::Unit::TestCase
to write some unit tests. Currently, I have a setup
function that moves and modifies some fixture files and folders on disk. (This is a necessary evil at the moment.) If a test crashes, the teardown
method doesn't get called, leaving files and folders in the way. The next time I run a test, it complains that such-and-such a folder already exists (Errno::EEXIST
), making me have to stop and get rid of the left-over files.
How do I ensure
that teardown
is always run? (ensure
is the same idea as finally
in some other languages.)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
让您的
setup()
进行一些清理,以便即使文件仍然存在也能正常工作怎么样?What about making your
setup()
do some cleanup so that it works even if the file still exists ?如何在
setup
中添加退出钩子,然后在teardown
中删除它:How about adding an on-exit hook in
setup
, then removing it inteardown
: