J'ai essayé d'utiliser la méthode setUpClass()
pour la première fois de ma vie et j'ai écrit:
class TestDownload(unittest.TestCase):
def setUpClass(cls):
config.fs = True
et a obtenu:
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'
Qu'est-ce que cela signifie et comment le satisfaire?
Vous devez mettre un décorateur @classmethod
Avant def setUpClass(cls)
.
class TestDownload(unittest.TestCase):
@classmethod
def setUpClass(cls):
config.fs = True
Les documents setupClass
sont ici et classmethod
documents ici .
Ce qui se passe, c'est que dans suite.py ligne 16 le setUpClass
est appelé sur la classe (pas une instance) comme une fonction simple (par opposition à une méthode liée). Aucun argument n'est passé silencieusement à setUpClass
, d'où le message d'erreur.
En ajoutant le décorateur @classmethod
, Vous dites que lorsque TestDownload.setupClass()
est appelée, le premier argument est la classe TestDownload
elle-même.
L'ajout de @classmethod avant setUp et tearDown résoudra le problème. @classmethod est lié à la classe.
class LoginTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
**Your code**
@classmethod
def tearDownClass(self):