gpt4 book ai didi

python - 如何告诉 Python unittest 使用函数中的自定义代码集退出

转载 作者:太空宇宙 更新时间:2023-11-04 06:07:01 25 4
gpt4 key购买 nike

我如何获得 Python unittest从我的函数中退出并返回状态码?

在我的 tearDown功能我必须做一些处理来生成状态代码,但我想要unittest使用该代码退出。 Python 脚本将从 DOS bat 文件运行,需要回显 %ERRORLEVEL%我想要 %ERRORLEVEL%myExitCode 设置.

目前,它总是返回 0 :

import logging
import unittest
import sys

myExitCode = 0

class MyTest(unittest.TestCase):

def setUp(self):
logging.info('Setting up test: logged stdout')

def test(self):
logging.info('logged more stdout')
self.assertTrue(True)

def tearDown(self):
## Mocking some processing to generate a customized exit code:
myExitCode = 1000
logging.info('exit code = %d', myExitCode)
return myExitCode

if __name__ == '__main__':
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger()
logger.addHandler(logging.FileHandler('test.log', mode='a'))
stderr_file = open('test.log', 'a')
unittest.main(testRunner=unittest.TextTestRunner(stream=stderr_file), exit=False)
logging.info('Exit Code from main: %d', myExitCode)
sys.exit(myExitCode)

批处理脚本:

python myExitCode.py
echo %ERRORLEVEL%

最佳答案

你需要在这里使用一个全局变量。请记住,这不是很干净:

   def tearDown(self): 
global myExitCode
myExitCode = 1000
logging.info('exit code = %d', myExitCode)

关于python - 如何告诉 Python unittest 使用函数中的自定义代码集退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21420689/

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