Код: Выделить всё
/.vscode
launch.json
settings.json
/python
/resources
data.csv
/src
myapp.py
/test
test_config.py
test_myapp.py
/venv
Код: Выделить всё
setting.jsonКод: Выделить всё
"python.testing.unittestEnabled": false,
"python.testing.pytestEnabled": true,
"python.testing.pytestArgs": [
"."
],
Код: Выделить всё
launch.jsonКод: Выделить всё
"cwd": "${workspaceFolder}/python",
"env": {
"PYTHONPATH": "${cwd}"
}
Код: Выделить всё
myapp.pyКод: Выделить всё
import pandas as pd
import sys
sys.path.insert(0, '../src')
class MyApp():
def __init__(self):
self.constant = 42
def get_constant(self):
# pd.read_csv('../resources/some_data.tsv', sep='\t') ## TODO: please get this working!
return self.constant
Код: Выделить всё
test_myapp.pyКод: Выделить всё
import unittest
import sys
sys.path.insert(0, '../src')
from myapp import MyApp
class Test_MyApp(unittest.TestCase):
def test_main_program_loads(self):
app = MyApp()
print(app.get_constant)
self.assertEqual(app.get_constant(), 42)
if __name__ == '__main__':
unittest.main()
После этого ответа https://stackoverflow.com/a/75565473/2523501 я добавил test_config.py, который получил тест проходит визуально на боковой панели «Тестирование» (без него они ломаются):
Код: Выделить всё
from pathlib import Path
import os
import sys
main_folder = Path(__file__).parent.parent
sys.path.insert(0, str(main_folder))
sys.path.insert(0, str(main_folder / 'src'))
sys.path.insert(0, str(main_folder / 'test'))
sys.path.insert(0, str(main_folder / 'resources'))
os.chdir(main_folder)
Однако! Как только я попробую использовать data.csv (т. е. раскомментируйте строку 10). Платформа пользовательского интерфейса тестирования показывает неудачные тесты, несмотря на то, что кнопка «Воспроизвести» как на myapp.py, так и на test_myapp.py все еще работает.
Ошибка заканчивается на:
Код: Выделить всё
FileNotFoundError: [Errno 2] No such file or directory: '../resources/some_data.tsv'Подробнее здесь: https://stackoverflow.com/questions/792 ... ary-folder
Мобильная версия