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
Je suis ceci article
Ma python est Python 3.6.6
et j'utilise Windows 10 sur la machine locale.
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.