2013-11-21 5 views
5

पर कस्टम नाक प्लगइन कैसे जोड़ें, इसलिए मैं नाक प्लगइन से निपटने में बहुत नोब हूं।'nosetests` कमांड

मैं बहुत कुछ खोज रहा हूं लेकिन नाक प्लगइन्स के बारे में दस्तावेज़ दुर्लभ प्रतीत होते हैं। मैंने पढ़ा है और करने की कोशिश की क्या निम्नलिखित लिंक में है एक सरल नाक प्लगइन लिखने और nosetests साथ इसे चलाने के लिए प्रयास करने के लिए, सफलता के बिना:

  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

मैं नहीं चाहता अपना खुद का टेस्ट रनर लिखने या किसी अन्य स्क्रिप्ट से परीक्षण चलाने के लिए (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 के साथ कर सकता हूं?

बहुत बहुत धन्यवाद !! :)

उत्तर

4

आप nose संस्करण entry_pointssetup.py में नहीं चाहते हैं। डॉक्स कहते हैं कि बस nose.plugins.0.10 का उपयोग करें। एंट्री पॉइंट नाम में बिंदीदार संस्करण प्लगइन एपीआई संस्करण के रूप में nose संस्करण इतना नहीं है।

संबंधित मुद्दे