【问题标题】:How to hide a builtin module name when importing or using it in other module如何在其他模块中导入或使用内置模块名称时隐藏它
【发布时间】:2019-01-01 22:52:51
【问题描述】:

我使用python unittest 框架进行集成测试。为了消除混淆,我想以“integrationtest.TestCase”而不是“unittest.TestCase”的方式继承TestCase类。

此外,如果我也可以执行“import integrationtest”而不是“import unittest”会更好,类似于“unittest.main()”,最好用“integrationtest.main()”调用它

我是 python 和 unittest 框架的新手。可以给点建议吗?

【问题讨论】:

    标签: python unit-testing


    【解决方案1】:

    我不同意有任何需要做你想做的事,无论如何你可以轻松实现你想要的。定义一个名为integrationtest.py的python模块,内容如下:

    from unittest import *
    from unittest import mock   # python3
    

    确保模块位于您的集成测试可以导入的位置。现在您可以通过导入此模块访问所有unittest 设施。

    注意:单个*-import 不足以导入子模块,因此需要from unittest import mock 行。

    这种做法在 Python 中并不常见,因此我不鼓励这样做。

    【讨论】:

    • 此解决方案是否适用于 python 2.7?我目前正在使用这个版本。在单元测试中继承所有使用的类是一个好习惯吗?此外,我还想为集成测试扩展一些东西,这也是我想这样做的另一个原因。
    • @Potatototototo 是的,但是您可能需要删除 mock 部分,因为默认情况下它在 python2.7 中不可用(但考虑安装 unittest2 而不是使用 stdlib 的... )。你可以在integrationtest做任何你想做的事情。
    猜你喜欢
    • 1970-01-01
    • 2019-09-04
    • 2019-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-03
    • 1970-01-01
    相关资源
    最近更新 更多