将unittest测试移至独立.py文件后无法识别,该如何设置argv?
解决unittest无法识别独立测试文件的问题
当测试代码移到独立.py文件后,Notebook里的unittest.main默认不会自动扫描加载外部测试模块,所以会出现“Ran 0 test”的情况,你可以通过以下几种方式解决:
方法一:导入测试文件
在Notebook里先导入你的测试模块,导入后测试类会自动被注册到unittest的测试套件中,之后再运行unittest.main即可识别测试用例。
假设你的测试文件名为test_helpers.py,Notebook代码修改为:
import unittest import test_helpers # 导入独立测试文件(不带.py后缀) unittest.main(argv=[''], exit=False)
如果测试文件不在Notebook的当前工作目录,需要先把文件所在路径添加到Python的搜索路径中:
import sys import unittest # 添加测试文件所在目录到sys.path sys.path.append('/Workspace/Repos/XXX/repo') import test_helpers unittest.main(argv=[''], exit=False)
方法二:通过argv指定测试模块名
unittest.main的argv参数需要传入测试模块的名称(不带.py后缀),而不是文件路径。修改Notebook代码如下:
import unittest # argv的第二个参数是测试模块名 unittest.main(argv=['', 'test_helpers'], exit=False)
同样,如果测试文件不在当前路径,需要先添加路径到sys.path,否则会提示模块找不到。
内容的提问来源于stack exchange,提问作者user3579222
相关产品推荐
相关产品推荐

