2

ノーズ構成ファイルからいくつかのオプションを取得したいと考えています。しかし、自分でファイルを解析したくないので、鼻のAPIを使用しようとします

この面に記載されている情報をどのように解釈すればよいかわかりません。

import nose

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

それが私がそれがうまくいくべきだと思う方法です。しかし、value例外Noneは発生しません。

私の使用例: ノーズが実行されるたびに debug-log ファイルを削除します。

4

3 に答える 3

1

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

于 2011-12-13T20:14:27.020 に答える
0

鼻のコードを見ると、構成ファイルからオプションを取得するための明確な API がわかりません。私が見ているのは次のとおりです。

  • nose.config.all_config_files()およびから設定ファイルを取得できますnose.config.user_config_files()
  • カスタム解析クラスは使用していませんが、ConfigParser.RawConfigParser.

したがって、結局のところ、構成ファイルを直接解析することはそれほど悪い考えではないかもしれません。

于 2011-12-14T10:02:28.780 に答える
0

あなたの最善のアプローチは、カスタム プラグインを作成することだと思います。そうすれば、鼻に仕事を任せることができます。あなたがしたいことはdebug-log、すべてのテストが実行された後に削除することです。これを行うには、finalize() メソッドを実装するプラグインが必要です。この例では、プラグインを有効/無効にできるように options() と、デバッグ ログの場所を見つけるために configure() も実装しました。 ここでメソッドの完全なリストを確認してください

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)

プラグインを作成したら、nose に登録し、実行時に有効にする必要があります。そのための手順がここにありますscoreプラグインが最後に実行されるようにするために、属性をいじることもできます。

于 2013-02-05T07:20:19.200 に答える