1. ホーム
  2. python

[解決済み] unittest.TestCaseの__init__について

2022-04-26 05:39:33

質問

の内容にいくつか追加したいことがあります。 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

このテストのセット全体に対して、すべてのスタブを一度だけ生成してほしいのです。そのためには setUpClass() Python 2.4で作業しているからです(Python 2.7でも動作させることができませんでした)。

私はここで何を間違えているのでしょうか?

このようなエラーが発生します。

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

...そして、スタブコードをすべて __init__ というコマンドで実行すると python -m unittest -v test .

解決方法は?

これを試してみてください。

class TestingClass(unittest.TestCase):

    def __init__(self, *args, **kwargs):
        super(TestingClass, self).__init__(*args, **kwargs)
        self.gen_stubs()

を上書きしているのです。 TestCase 's __init__ そのため、ベースクラスが引数を処理するようにしたい場合があります。