155

初期化時にクラスが行うことをいくつか追加したいのですが、そのunittest.TestCase方法がわかりません。

今、私はこれをやっています:

#filename test.py

class TestingClass(unittest.TestCase):

    def __init__(self):
        self.gen_stubs()

    def gen_stubs(self):
        # Create a couple of tempfiles/dirs etc etc.
        self.tempdir = tempfile.mkdtemp()
        # more stuff here

この一連のテスト全体に対して、すべてのスタブを 1 回だけ生成したいと考えています。setUpClass()私はPython 2.4で作業しているため使用できません(Python 2.7でも動作させることができませんでした)。

ここで何が間違っていますか?

次のエラーが表示されます。

 `TypeError: __init__() takes 1 argument (2 given)` 

__init__...コマンドで実行するときにすべてのスタブコードをに移動すると、その他のエラーが発生しpython -m unittest -v testます。

4

3 に答える 3

4

unittest2 をインストールし、そのパッケージの unittest を使用します。

import unittest2 

次に、特別な初期化ロジックに setupModule / TeaDownModule または setupClass / TeaDown クラスを使用します。

詳細: http://www.voidspace.org.uk/python/articles/unittest2.shtml

また、ほとんどの場合、単体テストよりも統合テストを作成しています。テストに適切な名前を付けて、それらを区別するか、別のコンテナー モジュールに配置します。

于 2013-06-27T22:49:52.377 に答える