2
import logging

class TestMyClass(unittest.TestCase):
       def __init__(self):
            self.logger = logging.getLogger('MyClassLog')

       def setUp(self):

コンストラクターでロガーをインスタンス化しようとしています。しかし、私はこのエラーが発生します: ... TypeError: init () は正確に1つの引数を取ります(2つ指定)

どうしてこれなの?ロガーを正しくインスタンス化するには?

4

4 に答える 4

3

をオーバーライドしています__init__TestCaseテストケースはテストランナーによってインスタンス化され、そこに渡される引数は実行するメソッドになるため、そのようなことはできません。行う必要があります (そして、正しい量の引数を取らないでください)。

ロギングを行いたい場合は、setUpメソッドで行うか、グローバルに行うことができます。

于 2012-07-31T23:22:41.463 に答える
2

あなたはこれを試すことができます..

class TestMyClass(unittest.TestCase):
def __init__(self, methodName):
    super(TestMyClass, self).__init__(methodName)
    self.logger = logging.getLogger('MyClassLog')
于 2012-08-31T21:35:00.500 に答える
2

__init__メソッドを持つべきではありません。setUp代わりに、メソッドで行う必要があるすべてのことを行います。

于 2012-07-31T23:23:19.130 に答える
1

setUpClass()テストケース内のすべてのテストの初期化を行う必要があり、一度だけ実行する必要があります。

于 2012-07-31T23:44:07.273 に答える