1

鼻を実行するようにPythonをセットアップしようとしていますが、ローカルで開発している既存のアプリケーションでのみです。現在インストールされているすべてのライブラリの周りで鼻を動かしたくありません。ただし、現在の作業ディレクトリと子ディレクトリ内のテストをノーズに検出してもらいたいと思います。

まず、私がやろうとしているのは、渡した引数が使用されていることを確認することだけです (以下の @need-batchelder によって解決されました)。ただし、現時点では、私が渡している引数が無視されているように見え、テストのグローバルな検出が行われています (つまり、python フォルダーからもテストを取得しています。

ドキュメントから:

     -V, --version
     Output nose version and exit

コマンドラインからnosetests -Vを実行すると、予想されるバージョンの出力が生成されます。

     nosetests -V
     nosetests-script.py version 1.2.1

ただし、次のテスト スクリプトは、アプリケーションのルートにあるにもかかわらず、現在の作業ディレクトリの一部ではなく、python パスにインストールされているライブラリのテストを含め、見つけられるすべてのテストの実行を開始します。

import nose, os

def main():
    print os.getcwd()
    x=raw_input() #This is just so I can see the output of the cwd before it launches into testing everything it can find.
    result = nose.run(argv=['-V']) 

if __name__ == '__main__':
    main()

これが私が試したことです:

  • nodes.main() 、 x=nose.core.run() 、 x=nose.run() を使用します。
  • 引数を直接nose.run()に渡し、リストを使用します。
  • noise.cfg ファイルを使用します。

ありがとう

編集: @ned-batchelder の提案を試すと、与えられた引数でノーズを実行できますが、アプリケーション フォルダー内でテストを検出することはできません。その場合、引数を渡すことはできますが、アプリケーションをテストすることはできません。

4

2 に答える 2

5

noseは、argvが完全なargvであることを期待していると思います。つまり、最初の要素はプログラムの名前である必要があります。

nose.run(argv=['me.py', '-V'])
于 2012-12-09T18:41:43.637 に答える
1

おそらく、あなたが欲しいのは:

arguments = sys.argv[:1] + my_custom_argument_list + sys.argv[1:]
nose.run(argv=arguments)

これにより、カスタム引数と、スクリプトを呼び出すコマンドラインからの引数を使用できるようになります。また、Nedが最初の引数がスクリプトを指すことを要求する鼻について指摘する問題にも対処します。

于 2013-01-17T22:39:42.693 に答える