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

Python 以编程方式将测试从self.assert迁移到裸断言,python,testing,refactoring,pytest,Python,Testing,Refactoring,Pytest,我有一个相对较大的测试代码库,我将从nose迁移到py.test。我还想利用py.tests的“bare assert”功能,因此我需要进行以下许多更改(例如): -> 代码库实际上太大了,我不能考虑手工做这件事。使用一些git和sed魔法,我可以摆脱大约一半的self.asserts,但这仍然让我有很多事情要做,而且脚本已经变得有些复杂了 我突然想到,我可能不是第一个这样做的人。那么:有什么好的脚本来做这种事情吗?或者知道任何可以编程地重构python的好工具(注意:我知道python rop

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

->

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


我突然想到,我可能不是第一个这样做的人。那么:有什么好的脚本来做这种事情吗?或者知道任何可以编程地重构python的好工具(注意:我知道python rope,但老实说,乍一看似乎并不特别方便)

您可以使用py.convert\u unittest来转换
self.assert*
。不过,它不涉及重写继承


不确定这是否有意义,但您也可以签出相关的脚本并调整脚本,可能会提交拉取请求。如果您愿意,我会帮助您将脚本分解成一个新的repo(如果您愿意,也可以在github上),然后发布它,让有相同问题的人可以开始分享成果。由于我已经很长一段时间没有使用unittest了(令人惊讶!),我没有兴趣推动这项工作,但我愿意提供帮助。

太好了,我将尝试一下,看看我的进展如何。干杯杰出的这是一个很好的开始。不过,这给我留下了一些遗留问题(虽然已经比我被黑客攻击的sed脚本做得好得多):git grep self\.assert | wc-l 380我会研究一下,如果我看到一些简单的修复方法,请提交一份报告,事实上我没有正确运行它,但它仍然遗漏了一些东西(unittest2的东西可能像assertTrue、assertFalse、assertNone和friends)。修复应该很简单。PR带来了一个惊喜。再次感谢。PR发送了一些小的改进
self.assertEquals(a, b)
assert a == b