如何解决“ ValueError:空模块名称”?

时间:2019-01-06 08:20:39

标签: python python-unittest

在我的UnitTest目录中,我有两个文件,mymath.pytest_mymath.py

mymath.py文件:

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

test_mymath.py文件是:

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()

当我运行命令

python .\test_mymath.py

我得到了结果

  

在0.000秒内进行了3次测试

     

但是当我尝试使用运行测试

python -m unittest .\test_mymath.py

我得到了错误

  

ValueError:空模块名称

跟踪: Full Traceback

文件夹结构: enter image description here

我正在关注article

我的python版本是Python 3.6.6,我正在本地计算机上使用Windows 10。

2 个答案:

答案 0 :(得分:4)

您几乎明白了。代替:

python -m unittest ./test_mymath.py

不要添加./,因此您现在拥有:

python -m unittest test_mymath.py

您的单元测试现在应该运行。

答案 1 :(得分:1)

使用python -m unittest test_mymath