所以我在处理鼻子插件方面非常棒。
我一直在搜索很多,但有关鼻塞的文档似乎很少。
我阅读并尝试了以下链接中的内容,尝试编写一个简单的鼻子插件
并使用nosetests
运行它,但没有成功:
我不想编写自己的测试运行器或从任何其他脚本运行测试(通过run(argv=argv, suite=suite(), ...)
),
就像他们在第一个链接中那样。
我用这样的类写了一个文件myplugin.py
:
import os
from nose.plugins import Plugin
class MyCustomPlugin(Plugin):
name = 'myplugin'
def options(self, parser, env=os.environ):
parser.add_option('--custom-path', action='store',
dest='custom_path', default=None,
help='Specify path to widget config file')
def configure(self, options, conf):
if options.custom_path:
self.make_some_configs(options.custom_path)
self.enabled = True
def make_some_configs(self, path):
# do some stuff based on the given path
def begin(self):
print 'Maybe print some useful stuff...'
# do some more stuff
并添加了setup.py
,如下所示:
try:
from setuptools import setup, find_packages
except ImportError:
import distribute_setup
distribute_setup.use_setuptools()
from setuptools import setup, find_packages
setup(
name='mypackage',
...
install_requires=['nose==1.3.0'],
py_modules=['myplugin'],
entry_points={
'nose.plugins.1.3.0': [
'myplugin = myplugin:MyCustomPlugin'
]
}
)
两个文件都在同一目录中。
每次运行nosetests --custom-path [path]
时,我都会:
nosetests: error: no such option: --custom-path
从上面提到的链接中,我认为只需注册和启用自定义插件即可。 但看起来,无论是我做错了什么,还是鼻子的文档已经过时了。
有人可以指出我注册和启用插件的正确方法,我可以使用nosetests
吗?
非常感谢!! :)
答案 0 :(得分:4)
您不希望nose
entry_points
中的setup.py
版本。如文档所述,只需使用nose.plugins.0.10
即可。入口点名称中的虚线版本不是插件API版本的nose
版本。