gpt4 book ai didi

python - 抑制 Python/unittest 的所有输出

转载 作者:太空宇宙 更新时间:2023-11-03 21:28:55 26 4
gpt4 key购买 nike

我正在尝试抑制 python 单元测试的所有终端输出,并希望仅根据测试是否通过或失败提供自定义反馈。我在网上找到的似乎都不起作用。我的用例是为学习 Python 的新学生提供反馈/提示。

我正在使用我的 shell 脚本调用unittest(我已经尝试了“dev/null”的几种变体):

if python -m unittest discover -s test; then
echo "<div class='pass'>pass</div>"
else
echo "<div class='fail'>fail</div>"
fi >>/dev/null

下面是我的 python 单元测试文件:

import unittest
import sys
import os

sys.path.insert(0, '/path/to/module')
import myFile

sys.stdout = os.devnull //tried this but didn't work
sys.stderr = os.devnull //tried this but didn't work

class TestCalc(unittest.TestCase):

def test_add(self):
result = calc.add(10, 5)
self.assertEqual(result, 15)

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

事实上,我的 shell 脚本中的 echo 确实根据测试是否通过或失败来运行,但在它上面是我不想要的所有终端输出。 (当我运行它时,输出位于交互式 IDE 中)

附录:我无法找到任何单元测试可选参数来抑制所有输出。

最佳答案

另一个选项(除了按照 Daniel Pryden 的建议编写自己的 TestRunner 之外)是简单地从命令行包装对测试可执行文件的调用并过滤掉(例如使用 grepawkperl 或其他 Python 脚本)仅显示您希望可见的输出部分。

关于python - 抑制 Python/unittest 的所有输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53657439/

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