nose默认按照以下简单的规则查找测试例
- 如果它看起来像是个测试例,那么它就是。目录,模块,类和函数的名字与testMatch正则表达式比较,匹配正则表达式的就被认为是测试例(看来这里面指的看起来像即是匹配testMatch正则)。一个继承于unittest.TestCase的类,并且该类定义在一个匹配testMatch正则的模块中,那么该类也会被收集成测试例。
- 带有可执行位的文件在类Unix操作系统中默认会被忽略,可以使用–exe来允许收集它们,但是需要多加小心安全使用它。在Windows系统中,可执行文件默认也会被收集,因为测试例没有可执行位。
- 不匹配testMatch正则,不是包的目录,将不会被递归查找。
- 包总会被递归查找,但是仅仅会收集匹配testMatch正则的测试例。这意味着你可以在你的包中包含测试例,nose将会收集测试例,并不会运行包中的代码。
- 当项目有一个库时,被分散到目录。库目录中的测试代码将会首先被检测到。
- 当nose导入一个模块时,它将增加模块的目录到sys.path中;当模块在一个包内时,例如package.module,它将会以package.module方式被加载,并且包的目录也会被增加到sys.path中。
- 如果一个对象定义了_ test _ 属性,并且属性的值不是True,该对象将不会被收集,任何包含它的对象都不会被收集。
注意,插件和命令行参数可以改变这些规则。