J'utilise le module unittest pour écrire des tests. J'ai besoin de tester l'initialisation de l'objet à l'intérieur d'un testcase en utilisant différentes entrées. Dans ce but, j'importe la classe dans setUp (). Mais lorsque j'essaie d'utiliser la classe à l'intérieur des fonctions test _ * (), j'obtiens cette erreur - NameError: name 'Example' is not defined

Voici mon exemple de code-

import unittest
class TestExample(unittest.TestCase):
    def setUp(self):
        import Example

    def test_sample_function(self):
        e = Example(1,2)

Je sais que je peux simplement importer la classe en haut du script. Mais je ne veux pas faire ça. Je dois l'importer uniquement lors de la configuration du script de test. Vous cherchez de l'aide ici.

0
eiram_mahera 17 mars 2019 à 18:48

2 réponses

Meilleure réponse
import unittest
class TestExample(unittest.TestCase):
    def setUp(self):
        import Example
        self.Example = Example

    def test_sample_function(self):
        e = self.Example(1,2)
1
jsbueno 17 mars 2019 à 15:55

Il n'y a aucune raison d'importer le module dans setUp. Le module est toujours disponible globalement dans sys.modules, mais vous ne l'avez lié qu'à un nom local qui disparaît après le retour de setUp. Il suffit de l'importer globalement.

import unittest
import Example


class TestExample(unittest.TestCase):
    def test_sample_function(self):
        e = Example(1,2)
0
chepner 17 mars 2019 à 16:04