You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用unittest框架运行测试套件时测试用例未执行问题咨询

测试用例未执行的问题排查与修复

我帮你梳理下代码里的几个核心问题,这就是导致测试用例没跑起来的原因:

1. 测试套件被多次赋值覆盖了

你现在的代码里,先把Apa_login的测试用例加载到suite,紧接着又用Show_processmap的用例重新赋值给suite——这就相当于把之前的测试用例全丢了,最后套件里可能只剩后者(如果后者本身也没符合规范的测试方法,那就是空套件)。

正确的做法是把两个测试类的用例都添加到同一个套件里,而不是覆盖:

def suite():
    suite = unittest.TestSuite()
    # 把两个测试类的用例都加入套件
    suite.addTests(unittest.TestLoader().loadTestsFromTestCase(Apa_login))
    suite.addTests(unittest.TestLoader().loadTestsFromTestCase(Show_processmap))
    return suite

2. suite函数多了个多余的self参数

你的suite是个普通函数,不是类里的方法,没必要加self参数——这个参数会导致调用函数时参数不匹配,大概率会触发报错,影响套件的生成。直接把self删掉就好。

3. 运行时没调用suite函数生成套件

在主代码块里,你直接把suite(这是个函数对象)传给了runner.run(),而不是调用suite()拿到实际的测试套件实例。相当于你给了runner一个“生成套件的模板”,而不是真正的套件,自然不会执行测试。

修改后的主代码块应该是这样:

if __name__ == '__main__':
    runner = unittest.TextTestRunner()
    # 先调用函数生成实际的测试套件
    test_suite = suite()
    runner.run(test_suite)
    print(test_suite)

额外要检查的点

别忘了确认你的Apa_login和Show_processmap类:

  • 必须继承unittest.TestCase,比如class Apa_login(unittest.TestCase):
  • 类里的测试方法必须以test_开头,比如test_login_normal(),这是unittest识别测试用例的硬性规则,不符合的话就算加载了类也不会执行任何用例。

最后给你贴个修复后的完整代码参考:

from apa_login import Apa_login
from processmap import Show_processmap
import unittest, HTMLTestRunner, apa_login, processmap

def suite():
    suite = unittest.TestSuite()
    suite.addTests(unittest.TestLoader().loadTestsFromTestCase(Apa_login))
    suite.addTests(unittest.TestLoader().loadTestsFromTestCase(Show_processmap))
    return suite

if __name__ == '__main__':
    runner = unittest.TextTestRunner()
    test_suite = suite()
    runner.run(test_suite)
    print(test_suite)

内容的提问来源于stack exchange,提问作者Henry.Huang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:38:17