web-dev-qa-db-ja.com

「ValueError:空のモジュール名」を解決する方法?

私のUnitTestディレクトリには、mymath.pytest_mymath.pyの2つのファイルがあります。

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つのテストを実行

OK

しかし、私が使用してテストを実行しようとしたとき

python -m unittest .\test_mymath.py

エラーが発生しました

ValueError:空のモジュール名

トレースバック: Full Traceback

フォルダ構造: enter image description here

私はこれに従っています 記事

私のpythonバージョンはPython 3.6.6で、ローカルマシンでWindows 10を使用しています。

7
Shams Nahid

もうすぐだ。の代わりに:

python -m unittest ./test_mymath.py

./を追加しないでください。

python -m unittest test_mymath.py

単体テストが実行されます。

0
Calleniah