0

だから私はスクリプトtest.pyを持っています

from nose.tools import with_setup

class Test:
    @with_setup(setup_func, teardown_func)
    def test(self):
        print "Hello World"

"test.py" と同じディレクトリにあるinit .py でsetup_func() と teardown_func() を定義できますか?

基本的に、目的は一連のテスト ケースに共通のセットアップと分解を行うことです。

4

1 に答える 1

0

setup_funcとについて魔法のようなものは何もありませんteardown_funcinit.pyまたはが呼び出された場合、任意のモジュールからそれらをインポートすることで、確かにそれを行うことができます__init__test_setup.pyテストモジュールのパッケージレベルでそれらの定義を持ちたくない場合があるため、他のモジュールに配置することをお勧めします。「明示的は暗黙的よりも優れている」という哲学が適用されます。

追加:ただし、ここでより大きな問題があります:with_setupはテスト関数に対してのみ有用であり、テスト メソッドやサブクラス内では有用ではありません。書かれているように、コードでsetupは、指定されている場所に関係なく、関数は呼び出されません。 hereを参照してください。

テストをクラス メソッドとして作成する場合は、 unittestのメソッドに依存する必要がsetUpあります。必要に応じて、特別なセットアップ クラスからテスト クラスを継承し、この同じ特別なクラスを別のテストに再利用できます。tearDown

于 2014-12-05T01:18:44.847 に答える