如何在vscode中为python unittest配置单元测试

时间:2019-12-24 00:06:39

标签: python-3.6 python-unittest vscode-settings vscode-python

我正在使用Python 3.6和最新版本的vscode。

我的文件夹结构:

/folder
    /src
        src.py
    /tests
        src_test.py

src.py:

class Addition:
  def __init__(self, a, b):
    self.a = a
    self.b = b
  def run(self):
    return self.a + self.b

src_test.py:

import unittest

from ..src.addition import Addition

class TestAddition(unittest.TestCase):
  def test_addition(self):
    inst = Addition(5, 10)
    res = inst.run()
    self.assertEqual(res, 16)

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

这是我的项目settings.json:

{
  "python.testing.unittestArgs": [
    "-v",
    "-s",
    ".",
    "-p",
    "*_test.py"
  ],
  "python.testing.pytestEnabled": false,
  "python.testing.nosetestsEnabled": false,
  "python.testing.unittestEnabled": true
}

然后在项目根文件夹下:

  

python3 -m unittest测试/ src_test.py

 File "/usr/lib/python3.6/unittest/loader.py", line 153, in loadTestsFromName
    module = __import__(module_name)
ModuleNotFoundError: No module named 'tests.src_test'

1 个答案:

答案 0 :(得分:2)

您缺少tests文件夹下的__init__.py文件,并且您的模块的导入需要进行调整。

__init__.py允许Python进入文件夹结构并到达src.py模块(在src下的另一个__init__.py很好,但是没有必要进行vscode测试)工作)。

这是一个工作文件夹结构:

.
├── src
│   └── src.py
└── tests
    ├── __init__.py
    └── src_test.py

此外,更改src.py中的行:

  • (旧)from ..src.addition import Addition
  • (新)from src.src import Addition
相关问题