2013-11-21 15 views
5

Vì vậy, tôi rất noob trong việc đối phó với các plugin mũi.Làm thế nào để thêm một plugin mũi tùy chỉnh vào lệnh `nosetests`

Tôi đã tìm kiếm rất nhiều nhưng tài liệu về các plugin mũi có vẻ khan hiếm. Tôi đọc và cố gắng những gì trong các liên kết sau đây để cố gắng viết một mũi đơn giản cắm và chạy nó với nosetests, nhưng không thành công:

  1. https://nose.readthedocs.org/en/latest/doc_tests/test_init_plugin/init_plugin.html
  2. https://nose.readthedocs.org/en/latest/plugins/writing.html

Tôi không muốn để viết thử nghiệm của riêng mình hoặc chạy thử nghiệm từ bất kỳ tập lệnh nào khác (qua run(argv=argv, suite=suite(), ...)), giống như họ thực hiện trong liên kết đầu tiên.

Tôi đã viết một tập tin myplugin.py với một lớp học như thế này:

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 

và thêm một setup.py như thế này:

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' 
     ] 
    } 
) 

Cả hai tập tin nằm trong cùng thư mục.

Mỗi lần tôi chạy nosetests --custom-path [path], tôi nhận được:

nosetests: error: no such option: --custom-path 

Từ các liên kết nêu trên, tôi nghĩ đó là tất cả những gì được yêu cầu phải đăng ký và kích hoạt một plugin tùy chỉnh. Nhưng có vẻ như, hoặc tôi đang làm điều gì đó thực sự sai, hoặc tài liệu của mũi là lỗi thời.

Ai đó có thể vui lòng chỉ cho tôi cách chính xác để đăng ký và bật plugin mà tôi có thể sử dụng với nosetests?

Cảm ơn rất nhiều !! :)

Trả lời

4

Bạn không muốn phiên bản nose trong entry_points trong setup.py. Chỉ cần sử dụng nose.plugins.0.10 làm tài liệu nói. Phiên bản chấm chấm trong tên điểm vào không phải là một phiên bản nose như là một phiên bản API plugin.

Các vấn đề liên quan