以编程方式将测试从self.assert迁移到裸断言

时间:2014-01-08 14:48:05

标签: python testing refactoring pytest

我有一个相对较大的测试代码库,我将从nose迁移到py.test。我还想利用py.tests的“断言”功能,以便我需要进行大量的以下更改(例如):

self.assertEquals(a, b)

- >

assert a == b

代码库实际上太大了,我不能考虑手工完成。有了一些git和sed魔法,我可以摆脱大约一半的self.asserts,但这仍然让我有很多事要做,脚本已经变得有些复杂了。

在我看来,我可能不是第一个做这件事的人。那么:有没有很好的脚本来做这种事情?或者知道任何可以通过编程方式重构python的好工具(注意:我知道python-rope但是老实说一眼看上去并不是特别方便)

1 个答案:

答案 0 :(得分:2)

您可以使用pycmd package中的py.convert_unittest来替换self.assert*。但是,它并不涉及重写继承。

不确定它是否有意义,但您也可以签出相关的pycmd hg repository并调整脚本,可能会提交拉取请求。如果您愿意,我会帮助将脚本分解为一个新的仓库(如果您愿意,也可以在github上),然后做广告,以便有相同问题的人可以开始分享工作。因为我自己没有使用unittest更长的时间(惊喜!)我没有兴趣推动这项努力,但我愿意帮助。