不包括python测试中的目录、模块
我们使用nose来发现测试并运行它们。所有测试都是以兼容的方式编写的,因此任何测试运行者都可以运行测试用例。问题是我们有一些没有任何测试的目录。但测试运行者继续从中发现测试。如果其中一个目录有很多文件,它就会被卡住。那么,如何排除该目录 目前我正在执行不包括python测试中的目录、模块,python,unit-testing,testing,nose,Python,Unit Testing,Testing,Nose,我们使用nose来发现测试并运行它们。所有测试都是以兼容的方式编写的,因此任何测试运行者都可以运行测试用例。问题是我们有一些没有任何测试的目录。但测试运行者继续从中发现测试。如果其中一个目录有很多文件,它就会被卡住。那么,如何排除该目录 目前我正在执行 nosetests --processes=10 --verbosity 2 但是有一个名为scripts的目录,它需要很长时间才能从中发现测试。所以我想排除它。我试过了 nosetests --processes=10 --verbosity
nosetests --processes=10 --verbosity 2
但是有一个名为scripts
的目录,它需要很长时间才能从中发现测试。所以我想排除它。我试过了
nosetests --processes=10 --verbosity 2 --exclude='^scripts$'
但是运气不好。有一个专门用于此任务的插件:
nose exclude是一个nose插件,允许您轻松指定
要从测试中排除的目录
在其他功能中,它引入了一个新的命令行参数,名为exclude dir
:
nosetests --processes=10 --verbosity 2 --exclude-dir=/path/to/scripts
除了传递命令行参数外,还可以设置环境变量
NOSE\u EXCLUDE\u DIRS
或设置EXCLUDE dir
配置键。还可以使用--ignore files
参数排除特定文件。由于这是使用正则表达式,您可以在scripts/
文件夹中命名文件,以特定前缀开头,然后在正则表达式中使用该前缀进行匹配
# Exclude just one test file
nosetests your_package --ignore-files="tests_to_exclude\.py" -v
# Exclude all python scripts beginning with `testskip_`
nosetests your_package --ignore-files="testskip_.+\.py" -v
请参阅:。可能不是OP要求的,但我发现nose文档中的这一小贴士有助于将文件排除在考虑范围之外: 如果对象定义的
\uuuuuuuuuuuuuuuuuuuuuuuuuuu
属性的计算结果不为True,则不会收集该对象,也不会收集其包含的任何对象
所以没有直接的方法来做这些,因此插件?@shiplu.mokadd.im恐怕插件是这里最好的选择
--exclude
nose参数不应用于目录。我个人使用过这个插件,它帮我完成了任务。@shiplu.mokadd.im如果它对你有用,我会在回答中再添加一件事。将\uuuu test\uuuu=False
添加到脚本
包的\uuuu init\uuuu
中。(当然,如果脚本是一个包)。让我知道它是否适合你。谢谢。对于Django,我必须执行——exclude dir=/path/to/project/app/tests
——这是我想要排除的测试的实际目录。上面没有父目录。nosetests-s-v-x*--ignore files=“Test1\.py”--ignore files=“Test2\.py”
这是我正在尝试的,但没有成功。这似乎是nose2现在唯一可以接受的答案;遗憾的是,在Python2下运行时,这不起作用,您试图让它跳过一个Python3源文件,而它甚至无法解析/编译该源文件以达到这一目的。。。