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

使用loadTestsFromName运行指定单元测试并输出结果至文件遇错求助

正确指定单个单元测试并输出结果到文件

错误原因

你给loadTestsFromName()传入的sys.modules[__name__]=='test1'是布尔值表达式,返回True或False,但该方法要求传入字符串格式的测试名称——内部需要对名称做拆分处理,布尔对象没有split方法,因此触发报错。

正确的测试名称格式

loadTestsFromName()接受的合法名称格式为:

  • 同模块内:测试类名.测试方法名
  • 跨模块:模块名.测试类名.测试方法名

修改代码

将指定测试的代码行替换为以下任意一种:

写法1(同模块简化版)

suite = loader.loadTestsFromName('TestClass.test1')

写法2(通用完整路径)

suite = loader.loadTestsFromName(f"{__name__}.TestClass.test1")

修改后的完整代码

import unittest
import sys
import os

def main(out=sys.stderr, verbosity=2):
    loader = unittest.TestLoader()
    suite = loader.loadTestsFromName('TestClass.test1')
    unittest.TextTestRunner(out, verbosity=verbosity).run(suite)

class TestClass(unittest.TestCase):
    def test1(self):
        self.assertEqual(True, True)

if __name__ == '__main__':
    with open('test-results.txt', 'w') as f:
        main(f)

运行结果

执行python test.py后,test1测试会单独运行,结果写入test-results.txt,文件内容示例:

test1 (__main__.TestClass) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.000s

OK

内容的提问来源于stack exchange,提问作者Osca

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 21:05:21