11

__main__鼻モジュールのハンドラを動作させる方法がわかりません。テストモジュールの最後にこれがあります:

if __name__ == "__main__":
    import nose
    nose.main()

それは私に与えます:

----------------------------------------------------------------------
Ran 0 tests in 0.002s

OK

しかし、コマンド ラインから同じことを実行すると、テストが検出されて実行されます。

MacBook-Pro:Storage_t meloam$nosetests FileManager_t.py 
............E..
======================================================================
ERROR: testStageOutMgrWrapperRealCopy (WMCore_t.Storage_t.FileManager_t.TestFileManager)
----------------------------------------------------------------------

をちょきちょきと切る

----------------------------------------------------------------------
Ran 15 tests in 0.082s

FAILED (errors=1)

私はさまざまな引数をnose.main()に渡して遊んでいますが、機能するものが見つかりません。本当に明らかな何かが欠けていますか?

ありがとう

4

5 に答える 5

9

後世のために、これは私が使用するものです:

if __name__ == '__main__':
    import nose
    nose.run(argv=[__file__, '--with-doctest', '-vv'])

--with-doctests、同じファイルで doctests も実行します。

于 2012-08-23T15:14:00.780 に答える
8
if __name__ == '__main__':
    import nose
    nose.run(defaultTest=__name__)
于 2010-11-05T05:44:33.613 に答える
7

ノーズ.ランモジュールは行く方法です:

if __name__ == '__main__':
    import nose
    nose.runmodule() 
于 2015-03-20T13:37:00.187 に答える
1

次の 2 点を確認することをお勧めします。

ソースファイルが適切な命名規則に従っていることを確認してください: (この回答で詳しく説明されています)。

たとえば、すべてのソース ファイルに「_Test」を追加する必要がありました。次に、必要なのはこの引数だけです (メインがテストのルートにあると仮定します):

nose.main(defaultTest="")

私は試しました:

nose.run(defaultTest=__name__)

以前の回答が示唆したように、何らかの理由でうまくいきませんでした。それを機能させるには、両方のことをしなければなりませんでした!

それが役に立てば幸い。

編集:ちなみに、で呼び出す

 nose.run() 

また

 nose.main()

どちらも識別可能な違いはありませんでした。

于 2011-11-21T14:23:29.667 に答える
0

nose.core.TestProgram偽のコマンドライン引数を渡して直接使用する必要があります。ただし、使用しているモジュールと同じモジュールからテストが見つかるかどうかはわかりません

于 2010-08-18T13:57:31.877 に答える