自律精进 2024-12-29 22:48 采纳率: 0%
浏览 4

unittest调试

为什么用命令行运行这个027 unit mulu baogao.py文件时,pattern=".py",会报错

img


若pattern="027
.py",不运行任何用例?

img


import  unittest # 导入unittest框架
from time import *
# from ui.HTMLTestRunnerNew import HTMLTestRunner

class   Cms_Test(unittest.TestCase): # 创建一个类,一个testcase就是一个用例
    # 类方法
    @classmethod
    def  setUpClass(cls) -> None:
          print("类开始")
    @classmethod
    def  tearDownClass(cls) -> None:
        print("类的结束")
    def setUp(self) -> None:
        print("方法的开始")
    def tearDown(self):
        print("方法结束")
    def  test1(self):
        print("1111")
    def   test3(self):
        print("3333")
    def   test2(self):
        print("2222")
    def   testa(self):
        print("aaaa")
    def   testA(self):
       print("AAAA")
    def  dcs(self): #  没有以test开头的用例
        print("dcs独有")
if __name__ == '__main__':
     path = r"C:\Users\15858\PycharmProjects\701\ui"  # 运行文件的相对路径
     d = unittest.TestLoader().discover(start_dir=path, pattern="027*.py")  # 测试路径:路径和匹配的文件   一般接*结尾
     runer=unittest.TextTestRunner()
     runer.run(d)#运行路径下的用例,此种方法必须使用命令行运行。否则不管path怎么写,右键运行此文件,五个方法还是会被执行

    
  • 写回答

2条回答 默认 最新

  • 关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    根据你提供的错误信息和代码,看起来你遇到了几个问题:

    问题一:TypeError和ImportError。看起来你尝试导入一个名为 ui_aaa 的模块时出现了问题。你的代码尝试从 ui.HTMLTestRunnerNew 中导入 HTMLTestRunner,但Python找不到这个模块。你需要确保这个模块在你的项目路径中,或者确保你的导入语句是正确的。此外,你可能需要确保你的代码在正确的环境中运行,并且所有依赖项都已正确安装。你可能需要查看你的项目结构,并确保所有文件和模块都在正确的位置。

    问题二:关于 unittest 的问题。你在代码中使用了 unittest.TestLoader().discover() 方法来发现测试用例并执行它们。你遇到的问题可能在于你的测试用例没有被正确地识别和执行。你需要确保你的测试用例文件名称是以 test_ 开头或者以 unittest_ 开头,并且它们是在 unittest.TestCase 子类中定义的实例方法。在你的代码中,我看到你的测试用例是以 test 开头的,这应该没有问题。然而,你的代码中存在一些非测试方法(如 setUpClass, tearDownClass 等),这些方法不是 unittest.TestCase 的实例方法,这可能是一个问题。此外,你需要确保你的测试用例方法的名称以 test_ 开头(例如 test_method_name())。另外,你的 pattern 参数应该指向包含测试用例文件的模式字符串,而不是文件名。你可能需要更改这个参数来正确地识别你的测试用例文件。你可能还需要确认你是否使用了正确的Python解释器运行这个脚本,并确保这个脚本在你的测试模块路径中。如果问题仍然存在,你可能需要提供更多的信息以便我能更好地帮助你解决问题。

    最后,对于你提供的三个运行结果图,看起来第二次和第三次运行没有出现任何错误或者运行结果可能是空的情况可能是因为你的测试并未发现问题(测试的结果通常是测试结果预期的行为)。只有在测试用例中有失败的情况下才会输出错误信息或者失败信息。如果测试结果符合预期的行为,那么不会有任何输出或者显示测试通过("OK")。所以这种情况并不表示代码存在问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 12月29日