【问题标题】:programmatically migrating tests from self.assert to bare asserts [closed]以编程方式将测试从 self.assert 迁移到裸断言 [关闭]
【发布时间】:2014-01-08 14:48:05
【问题描述】:

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

self.assertEquals(a, b)

->

assert a == b

代码库实际上太大了,我无法考虑手动执行此操作。通过一些 git 和 sed 魔法,我可以摆脱大约一半的 self.asserts,但这仍然让我有很多事情要做,而且脚本已经变得有些复杂了。

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

【问题讨论】:

    标签: python testing refactoring pytest


    【解决方案1】:

    您也可以使用pycmd package 中的py.convert_unittest 来转换self.assert*。不过,它不涉及重写继承。

    不确定这是否有意义,但您也可以查看相关的 pycmd hg repository 并调整脚本,可能会提交拉取请求。如果您愿意,我会帮助将脚本分解到一个新的 repo 中(如果您愿意,也可以在 github 上)然后宣传它,以便有相同问题的人可以开始分享工作。由于我很长时间没有自己使用单元测试(惊喜!)我没有兴趣推动这项工作,但我愿意提供帮助。

    【讨论】:

    • 太好了,我会试一试,看看进展如何。干杯!
    • 优秀。那是一个很好的开始。虽然给我留下了一些剩菜(虽然已经比我破解的 sed 脚本做得更好): git grep self\.assert | wc -l 380 我会研究一下,如果我看到一些简单的修复,请提交 PRs
    • 实际上我运行不正确,但它仍然遗漏了一些东西(unittest2 的东西可能像 assertTrue、assertFalse、assertNone 和朋友)。修复应该是微不足道的。公关来了
    • 辛苦了。再次感谢。 PR 发送了一些小的改进
    猜你喜欢
    • 2020-06-13
    • 1970-01-01
    • 1970-01-01
    • 2015-11-13
    • 2019-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多