Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 任何人都知道如何进行鼻子测试';s-m,-i和-e工作?_Python_Regex_Unit Testing_Nosetests - Fatal编程技术网

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”的测试。