2011-12-13 13 views
2

私は鼻設定ファイルからいくつかのオプションを取得したいと思います。だnosetests設定オプションを取得

import nose 

def setup() 
    noseParser = nose.config.Config().getParser() 
    value = noseParser.get_option("debug-log") 

: しかし、私は、この側に言及した情報を解釈するかどうかはわかりません私は自分自身でファイルを解析したくないので、私は鼻にapi

を使用するようにしてください私はそれがうまくいくと思います。しかし、valueNoneのままであり、例外は発生しません。

私の用途:ノーズが動作するたびにデバッグログファイルを削除します。

答えて

1

あなたが提供したリンクによると、getParser()は 'コマンドラインオプションパーサー'を返します。私はわかりませんが、nose.config.Config().debugLogに設定されているものを確認することができます。

+0

実際にはパーサーが返されます。 – dbn

0

ノーズコードを見ると、設定ファイルからオプションを取得する明確なAPIはありません。あなたがnose.config.all_config_files()nose.config.user_config_files()からコンフィギュレーションファイルを取得することができます

  • :私は何を見ることはということです。
  • ノーズカスタム解析クラスを使用していませんが、ちょうどConfigParser.RawConfigParserです。

したがって、設定ファイルを直接解析するのは悪い考えではないかもしれません。

0

私はあなたの最善のアプローチはwrite a custom pluginだと思います。そうすれば、あなたはノーズがあなたのために仕事をすることができます。あなたがしたいことは、すべてのテストが実行された後にdebug-logを削除することです。これを行うには、finalize()メソッドを実装するプラグインが必要です。この例では、デバッグログの場所を見つけるために、プラグインを有効/無効にしてconfigure()できるようにoptions()を実装しました。 Check out the full list of methods here

from nose.plugins import Plugin 
import os 

class AutoDeleteDebugLog(Plugin): 
    """ 
    Automatically deletes the error log after test execution. This may not be 
    wise, so think carefully. 
    """ 
    def options(self, parser, env): 
     "Register commandline options using Nose plugin API." 
     parser.add_option('--with-autodeletedebuglog', action='store_true', 
          help='Delete the debug log file after execution.') 
     self.debuglog = None 

    def configure(self, options, conf): 
     "Register commandline options using Nose plugin API." 
     self.enabled = options.autodeletedebuglog 
     self.debuglog = options.debugLog 

    def finalize(self, result): 
     "Delete debug log file after all results are printed." 
     if os.path.isfile(self.debuglog): 
      os.remove(self.debuglog) 

プラグインを作成したら、プラグインを登録して実行時に有効にする必要があります。そこにare instructions for that herescore属性で再生して、プラグインが最後に実行されるようにすることもできます。

関連する問題