gpt4 book ai didi

python - unittest.main() 在 Spyder 中使 python 解释器崩溃

转载 作者:行者123 更新时间:2023-11-28 21:55:20 24 4
gpt4 key购买 nike

我有一个包含 unittest.TestCasesetUp() 函数和少量 test_foo_does_bar() 的 python 脚本-类型函数。

脚本结束如下:

if __name__ == '__main__':
unittest.main()

当我在 Spyder 中运行此脚本时(请参阅下面的配置详细信息),解释器在以下行停止:

----------------------------------------------------------------------
Ran x tests in x.xxxs

FAILED (failures=x)

再多的 Ctrl+C 或 Ctrl+D 也无法挽救解释器并让我回到提示符。从命令提示符运行的同一脚本正常终止。

这是 Spyder 中的错误还是我遗漏了什么?

设置信息:蜘蛛 2.2.3Python 2.7.5 64 位。 Windows 上的 Qt 4.8.4、PyQt4 (API v2) 4.9.6

最佳答案

它不会使 Python 解释器崩溃,而是会终止它。这是脚本的正常行为。
你可以自己看一下:在main.py中是这样写的,main = TestProgram;这意味着 unittest.main() 将调用 TestProgram 类,该类在其 __init__(self) 中调用 self.runTests( ),以此结尾:

if self.exit:
sys.exit(not self.result.wasSuccessful())

所以它有一个特定的调用sys.exit(),它终止了解释器。

事实上,如果你把它作为命令行运行,你就回到了命令行;如果您启动命令行 Python,导入模块并调用函数,您将看到您将返回到命令提示符 - 您不会停留在 Python 中。

如果您希望脚本不终止解释器,只需在调用函数时声明即可:

unittest.main(exit=False)

关于python - unittest.main() 在 Spyder 中使 python 解释器崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22815931/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com