如何在 vscode 中为 python 单元测试配置单元测试
how to configure unit test in vscode for python unittest
我正在使用 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 tests/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'
您在测试文件夹下缺少一个 __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
我正在使用 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 tests/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'
您在测试文件夹下缺少一个 __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