der*_*rek 6 python-unittest visual-studio-code python-3.6 vscode-python
我正在使用 Python 3.6 和最新版本的 vscode。
我的文件夹结构:
/folder
/src
src.py
/tests
src_test.py
Run Code Online (Sandbox Code Playgroud)
src.py:
class Addition:
def __init__(self, a, b):
self.a = a
self.b = b
def run(self):
return self.a + self.b
Run Code Online (Sandbox Code Playgroud)
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()
Run Code Online (Sandbox Code Playgroud)
这是我的项目settings.json:
{
"python.testing.unittestArgs": [
"-v",
"-s",
".",
"-p",
"*_test.py"
],
"python.testing.pytestEnabled": false,
"python.testing.nosetestsEnabled": false,
"python.testing.unittestEnabled": true
}
Run Code Online (Sandbox Code Playgroud)
然后在项目根文件夹下:
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'
Run Code Online (Sandbox Code Playgroud)
小智 5
您在测试文件夹下缺少一个__init__.py文件,并且模块的导入需要调整。
允许__init__.pyPython 在文件夹结构中向上并到达模块src.py(在 src 下另一个__init__.py会很好,但没有必要使 vscode 测试工作)。
这是一个工作文件夹结构:
\n\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 src\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 src.py\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 tests\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 src_test.py\nRun Code Online (Sandbox Code Playgroud)\n\n另外,更改 src.py 中的行:
\n\nfrom ..src.addition import Additionfrom src.src import Addition| 归档时间: |
|
| 查看次数: |
2776 次 |
| 最近记录: |