【问题标题】:Python unittest main method interfering with main method of my scriptPython unittest main 方法干扰了我的脚本的 main 方法
【发布时间】:2016-06-22 14:58:12
【问题描述】:

我有一个带有 main 方法(if __name__ == '__main__': 等)的脚本,我正在尝试使用 unittest 进行测试,而 the basic example 建议将 unittest_main() 放入您的 main 方法中。它似乎覆盖了我之前在 main 方法中所做的任何事情。例如,脚本过去使用的任何参数现在都被汇集到单元测试中。这里有什么提示吗?

【问题讨论】:

  • 不要对脚本进行单元测试;单元测试模块。您的脚本只是外部资源和模块之间的接口。
  • 感谢@chepner 的课程!我现在可以确认我正在处理的是一个模块,因为它是可导入和可重用的。鉴于此信息,您会更改之前关于创建包装器的答案吗?

标签: python unit-testing scripting main


【解决方案1】:

使您的脚本成为模块周围的薄包装:

import mymodule

if __name__ == "__main__":
    mymodule.main()

脚本现在不需要单元测试(或者更确切地说,它只需要模拟mymodule 并确认它调用了mymodule.main()),并且所有可测试的逻辑都在一个无法运行的模块中一个脚本。

【讨论】:

    猜你喜欢
    • 2011-07-29
    • 2015-06-02
    • 1970-01-01
    • 1970-01-01
    • 2014-03-26
    • 2016-07-27
    • 1970-01-01
    • 2010-10-09
    • 2017-02-02
    相关资源
    最近更新 更多