Python 任何人都知道如何进行鼻子测试';s-m,-i和-e工作?
我试图通过鼻测试来识别我的测试,但它没有正确运行我的任何测试 我有以下文件结构Python 任何人都知道如何进行鼻子测试';s-m,-i和-e工作?,python,regex,unit-testing,nosetests,Python,Regex,Unit Testing,Nosetests,我试图通过鼻测试来识别我的测试,但它没有正确运行我的任何测试 我有以下文件结构 Project +----Foo/ +----__init__.py +----bar.py +----test/ +----__init__.py +----unit/ +----__init__.py +----bar_test.py
Project
+----Foo/
+----__init__.py
+----bar.py
+----test/
+----__init__.py
+----unit/
+----__init__.py
+----bar_test.py
+----functional/
+----__init__.py
+----foo_test.py
在bar_test.py内
class BarTest(unittest.TestCase):
def bar_1_test():
...
在foo_test.py中
class FooFTest.py
def foo_1_test():
...
使用鼻子测试的-m、-i、-e选项
- 我只需要运行单元测试所需的正则表达式是什么(在unit/下,类BarTest中的测试)
- 什么是regex?我只需要运行功能测试(在functional/下,类FooFTest中的测试)
我尝试了各种组合,但似乎无法让nosetests始终如一地完成我想要的任务在
项目/测试/单元
下运行测试的最简单方法是使用——where
。例如:
nosetests --where=Project/test/unit
然后使用--match
(-m
)或--exclude
(-e
)来优化列表(如果需要)
如果您仍然想使用正则表达式选择器,您可以这样做(未经测试):
从Project
目录执行此脚本将运行以“Foo”开头并以“[Tt]est”结尾的所有测试
一般来说,您可能希望使用
--match
或--exclude
,但不能同时使用两者。这些参数都指定要匹配的函数名的模式。您可以使用--ignore files
对其中任何一个进行优化,这自然允许您忽略整个文件。鉴于您的目录结构,您可以使用--exclude选项轻松地运行测试段
运行所有测试:
nosetests Project
nosetests Project -e functional
nosetests Project -e unit
运行单元测试:
nosetests Project
nosetests Project -e functional
nosetests Project -e unit
运行功能测试:
nosetests Project
nosetests Project -e functional
nosetests Project -e unit
如果您有更复杂的测试执行需求,我建议您标记测试并使用。so--match and--exclude只匹配测试方法,而不匹配测试类名?Oops。抢手货你说得对。例如,在--match的文档中:“与此正则表达式匹配的文件、目录、函数名和类名都被视为测试。”因此您可以使用--match收集所有测试,然后使用--exclude忽略包含“bar”的测试。