【发布时间】:2018-08-30 22:46:48
【问题描述】:
我有一个 Python 包(Python 3.6,如果它有所不同的话),我设计为以 'python -m package arguments' 和 I' 运行想为 __main__.py 模块编写单元测试。我特别想验证它是否正确设置了退出代码。是否可以使用 runpy.run_module 执行我的 __main__.py 并测试退出代码?如果是这样,我如何检索退出代码?
更清楚地说,我的 __main__.py 模块非常简单。它只是调用一个已经过广泛单元测试的函数。但是当我最初编写 __main__.py 时,我忘记将该函数的结果传递给 exit(),所以我希望在单元测试中模拟主函数以确保正确设置退出代码。我的单元测试看起来像:
@patch('my_module.__main__.my_main', return_value=2)
def test_rc2(self, _):
"""Test that rc 2 is the exit code."""
sys.argv = ['arg0', 'arg1', 'arg2', …]
runpy.run_module('my_module')
self.assertEqual(mod_rc, 2)
我的问题是,我如何才能得到我在这里写的“mod_rc”?
谢谢。
【问题讨论】:
-
你能告诉我们你到目前为止做了什么吗?请将您的代码添加到您的问题中
-
并不是 Stack Overflow 上的每个问题都必须与特定代码相关。这个问题有足够的细节来确定足够的答案,并且只问一个问题。因此,我建议重新打开它。
标签: python python-unittest runpy