unittest 使用 parameterized 参数化后如何调用添加到测试套件中
写了一个 Unittest+Python+execl 的一个接口自动化,在参数化的时候遇到了一个问题。具体的“坑”如下
要实现的需求
在 execl 中涉及或写接口测试用例,然后读取 execl 中每一行的数据,每一行数据就相当于一条用例
需求实现
复制代码
用例为:
结果为:
先不管接口是不是有问题,从这个运行看,流程是 OK 的
参数化后调用加入测试条件中
复制代码
结果出错
TypeError: 'NoneType' object is not callable
排查分析
使用 unittest.defaultTestLoader.discover,打印所有的 case,发现用例格式是“test_run_0”
复制代码
复制代码
重新调用
把 test_run 改成 test_run_0
复制代码
仍然报错:提示“test_run_0”找不到
再次分析
发现如图,使用 suite = unittest.defaultTestLoader.discover('./', pattern='run.py')即可,直接去掉 suite.addTest(TestRun('test_run_0'))
再次调试
结果就 OK 了
复制代码
版权声明: 本文为 InfoQ 作者【虫无涯】的原创文章。
原文链接:【http://xie.infoq.cn/article/5af02d3baa61b0ca5961936bd】。文章转载请联系作者。
评论