私は自分の人生で初めてsetUpClass()
メソッドを使用しようとして、次のように書きました:
class TestDownload(unittest.TestCase):
def setUpClass(cls):
config.fs = True
そして得た:
Ran 0 tests in 0.004s
FAILED (errors=1)
Failure
Traceback (most recent call last):
File "/opt/anaconda3/lib/python3.5/unittest/suite.py", line 163, in _handleClassSetUp
setUpClass()
TypeError: setUpClass() missing 1 required positional argument: 'cls'
それは何を意味し、どのようにそれを満足させるのですか?
def setUpClass(cls)
の前に_@classmethod
_デコレータを置く必要があります。
_class TestDownload(unittest.TestCase):
@classmethod
def setUpClass(cls):
config.fs = True
_
setupClass
docs are here および classmethod
docs here 。
suite.py 163行目 では、(バインドされたメソッドではなく)setUpClass
がクラスでは(インスタンスではなく)単純な関数として呼び出されます。 setUpClass
に暗黙的に渡される引数がないため、エラーメッセージが表示されます。
_@classmethod
_デコレータを追加することで、TestDownload.setupClass()
が呼び出されたときに、最初の引数がクラスTestDownload
自体であることを示しています。
SetUpおよびtearDownの前に@classmethodを追加すると、問題が解決します。 @classmethodはクラスにバインドされます。
class LoginTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
**Your code**
@classmethod
def tearDownClass(self):