运行Python unittest时如何跳过testutils.py测试工具文件?
解决unittest扫描testutils.py导致测试失败的方法
以下几种方法都能帮你避开这个问题,按需选择即可:
直接重命名文件(最简单)
把testutils.py改成不带test开头的名字,比如django_test_utils.py或者testcase_utils.py。因为python -m unittest默认只会扫描命名符合test*.py的文件,改名后就不会被自动识别成测试文件了。指定测试文件匹配规则
用unittest discover命令时,通过--pattern参数只匹配真正的测试文件,比如只跑以test_开头的测试文件:python -m unittest discover --pattern "test_*.py"这样
testutils.py因为不符合test_*.py的模式,就会被忽略。用Django自带的测试命令并配置规则
如果是用Django的manage.py test,可以在项目的settings.py里添加配置,指定测试文件的匹配规则:TEST_DISCOVER_PATTERN = "test_*.py"之后运行
python manage.py test时,只会扫描符合这个模式的文件,testutils.py就不会被加载。另外也可以直接指定要运行的测试模块/文件,比如:python manage.py test myapp.tests这样只会跑
myapp/tests目录下的测试,忽略其他目录里的testutils.py。调整文件存放位置
把testutils.py移到非测试目录下,比如放到myapp/utils/目录里,命名成test_case_utils.py。这样unittest默认扫描测试目录时,根本不会碰这个文件,其他应用要导入的话,直接from myapp.utils.test_case_utils import XXX就行。
内容的提问来源于stack exchange,提问作者IAmVerySmart
相关产品推荐
相关产品推荐

