web-dev-qa-db-fra.com

Comment résoudre "ValueError: nom de module vide"?

Dans mon répertoire UnitTest, j'ai deux fichiers, mymath.py et test_mymath.py.

mymath.py fichier:

def add(a, b):
    return a + b

def subtract(a, b):
    return a - b

def multiply(a, b):
    return a * b

def divide(numerator, denominator):
    return float(numerator) / denominator

Et le test_mymath.py le fichier est:

import mymath
import unittest

class TestAdd(unittest.TestCase):
    """
    Test the add function from the mymath library
    """

    def test_add_integer(self):
        """
        Test that the addition of two integers returns the correct total
        """
        result = mymath.add(1, 2)
        self.assertEqual(result, 3)

    def test_add_floats(self):
        """
        Test that the addition of two integers returns the correct total
        """
        result = mymath.add(10.5, 2)
        self.assertEqual(result, 12.5)

    def test_add_strings(self):
        """
        Test that the addition of two strings returns the two strings as one
        concatenated string
        """
        result = mymath.add('abc', 'def')
        self.assertEqual(result, 'abcdef')

if __name__ == '__main__':
    unittest.main()

Lorsque j'exécute la commande

python .\test_mymath.py

J'ai les résultats

Ran 3 tests en 0,000s

D'accord

Mais quand j'ai essayé d'exécuter le test en utilisant

python -m unittest .\test_mymath.py

J'ai l'erreur

ValueError: nom de module vide

Traceback: Full Traceback

Structure des dossiers: enter image description here

Je suis ceci article

Ma python est Python 3.6.6 et j'utilise Windows 10 sur la machine locale.

7
Shams Nahid

Vous l'avez presque compris. Au lieu de:

python -m unittest ./test_mymath.py

n'ajoutez pas le ./ vous avez donc maintenant:

python -m unittest test_mymath.py

Vos tests unitaires devraient maintenant s'exécuter.

0
Calleniah