如何在单个Python测试文件中按测试方法名匹配运行子集单元测试
按方法名模式运行同一文件内的unittest测试
当然可以实现按方法名匹配运行测试,不需要将每个测试单独放在文件中,下面是两种常用方法:
方法一:直接指定类加方法名通配符
通过命令行直接指定测试文件、测试类,再结合方法名的通配符匹配:
- 在Linux/macOS的bash/zsh等shell中,直接执行:
shell会自动展开python -m unittest test.TestClass.test_1*test_1*通配符,匹配所有以test_1开头的测试方法。 - 在Windows的CMD中,需要用双引号包裹通配符部分,避免CMD提前解析:
python -m unittest "test.TestClass.test_1*"
方法二:使用-k参数匹配测试名称(Python 3.7+)
unittest从Python 3.7开始支持-k参数,它可以根据测试名称(包含类名和方法名)的子串或正则模式匹配测试:
- 匹配所有名称包含
test_1的测试:python -m unittest test -k "test_1" - 更精确地匹配以
test_1开头的方法(用正则锚点^):
这里的python -m unittest test -k "^test_1"test指定了要运行的测试文件,确保只针对test.py中的测试。
注意:-p参数仅用于匹配文件名,而-k参数才是针对测试方法/类名的匹配,正好满足你的需求。
内容的提问来源于stack exchange,提问作者Osca
相关产品推荐
相关产品推荐

