如何验证Python中编写的unittest单元测试用例是否执行成功?
验证单元测试用例执行结果的两种方法
要确认你的unittest用例执行后会输出“OK”,可以用以下两种简单方法实现:
方法一:外部运行脚本并抓输出检查
直接模拟你在终端运行测试的操作,通过代码捕获脚本输出,然后看里面有没有“OK”。
假设你的测试脚本叫test_sum.py,可以写这样一段验证代码:
import subprocess import sys def check_test_output(): # 启动子进程运行测试脚本,捕获输出 run_result = subprocess.run( [sys.executable, "test_sum.py"], capture_output=True, text=True ) # 断言输出里包含"OK",不满足就抛出错误 assert "OK" in run_result.stdout, f"测试没通过,输出内容:{run_result.stdout}" if __name__ == "__main__": check_test_output() print("搞定:测试用例执行确实返回了OK")
方法二:内部调用unittest API直接判断结果
不用启动新进程,直接在代码里加载测试用例,运行后通过unittest的内置方法判断是否全部用例通过(对应终端的“OK”)。
同样假设测试脚本是test_sum.py,验证代码如下:
import unittest import test_sum # 导入你的测试模块 def check_test_result(): # 加载测试类里的所有测试用例 test_suite = unittest.TestLoader().loadTestsFromTestCase(test_sum.TestSum) # 运行测试,把标准输出重定向到空设备避免干扰 runner = unittest.TextTestRunner(stream=open('/dev/null', 'w')) result = runner.run(test_suite) # 判断测试是否全部通过 assert result.wasSuccessful(), "测试用例执行未全部通过" if __name__ == "__main__": check_test_result() print("搞定:测试用例执行确实返回了OK")
内容的提问来源于stack exchange,提问作者tom roddick
相关产品推荐
相关产品推荐

