gpt4 book ai didi

python - 将 Unittest 输出记录到文本文件

转载 作者:太空狗 更新时间:2023-10-29 17:03:05 25 4
gpt4 key购买 nike

我正在尝试将测试输出记录到一个文本文件中。我正在使用 unittest 模块并希望将结果记录到文本文件而不是屏幕中。我这里有一些脚本来解释到目前为止已经尝试过的内容。这是测试脚本。

import unittest, sys

class TestOne(unittest.TestCase):

def setUp(self):
self.var = 'Tuesday'
def tearDown(self):
self.var = None



class BasicTestOne(TestOne):

def runTest(self):

TestOne.setUp(self)
self.assertEqual(self.var, 'Tuesday')



class AbsoluteMoveTestSuite(unittest.TestSuite):

# Tests to be tested by test suite
def makeAbsoluteMoveTestSuite():
suite = unittest.TestSuite()
suite.addTest(TestOne("BasicTestOne"))

return suite

def suite():
return unittest.makeSuite(TestOne)


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

我已将其添加到文件中,但它似乎不起作用。

log_file = 'log_file.txt'
sys.stout = sys.sterr = open(log_file, 'w')

return suite >> sys.stout

还有:

log_file = 'log_file.txt'
return suite >> open(log_file, 'w')

我已经尝试了这个命令的几个不同版本。

if __name__ == '__main__':
unittest.main() >> open(log_file, 'w')

这个我试过了。我希望在 python 脚本中存储和创建日志文件。我不想调用 python tests.py >> log_file.txt

感谢您的帮助

最佳答案

您可以将文本运行程序传递到 main 方法中。文本运行程序必须设置为写入文件而不是 std.err,因为它将流包装在装饰器中。以下在 python 2.6 中对我有用

if __name__ == '__main__':
log_file = 'log_file.txt'
with open(log_file, "w") as f:
runner = unittest.TextTestRunner(f)
unittest.main(testRunner=runner)

关于python - 将 Unittest 输出记录到文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2712831/

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