为什么我的 python 程序仅在单元测试中运行时才会引发 ModuleError?

问题描述 投票:0回答:0

我有以下结构:

  • 项目/source_code/constants.py
  • 项目/source_code/calculator.py
  • 项目/测试.py
#in constants.py

MIN_VALUE = 0
MAX_VALUE = 100
#in calculator.py

import constants

class Calculator:
    #Create initialiser (not used at the moment)
    def __init__(self):
        return

    def get_sum(self, number1, number2):
        return number1 + number2

def main():
    calculator = Calculator()
    print(calculator.get_sum(10, 10))
    return

if __name__ == "__main__":
    main()
    print("")
    exit(0)
#in tests.py

import unittest
import source_code.calculator as Calculator

class Test_Calculator(unittest.TestCase):
    def setUp(self):
        self.calculator = Calculator()
        return

    def test_calculator(self, number1, number2, errorMessage):
        self.assertEqual(self.get_sum(number1, number2), expected_LBTT, errorMessage)
        return

    def main(self):
        test_calculator(10, 10, "The calculated sum is wrong.")
        return

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

当我运行 calculator.py 时,它工作正常。 当我运行 tests.py 或 python -m unittest 时,出现以下错误:

> ======================================================================
> **ERROR: tests (unittest.loader._FailedTest.tests)
> **----------------------------------------------------------------------
> ImportError: Failed to import test module: tests
> Traceback (most recent call last):
> File "C:\Users\Home\AppData\Local\Programs\Python\Python311\Lib\unittest\loader.py", line 407, in _find_test_path
> module = self._get_module_from_name(name)
>              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File "C:\Users\Home\AppData\Local\Programs\Python\Python311\Lib\unittest\loader.py", line 350, in _get_module_from_name
> __import__(name)
> File "C:\Users\Home\Desktop\BJSS\project\tests.py", line 2, in <module>
> import source_code.calculator as Calculator
> File "C:\Users\Home\Desktop\BJSS\project\source_code\calculator.py", line 1, in <module>
> import constants
> ModuleNotFoundError: No module named 'constants'
> 
> 
> ----------------------------------------------------------------------
> Ran 1 test in 0.000s
> 
> FAILED (errors=1)

我不明白为什么它以一种方式运行而不是另一种方式。 我该如何解决这个问题?

python python-unittest importerror modulenotfounderror
© www.soinside.com 2019 - 2024. All rights reserved.