Vscode запуск теста django с базой данных в контейнере docker на хосте
Мои настройки.json
{
"python.linting.pylintEnabled": true,
"python.linting.enabled": true,
"python.testing.unittestArgs": [
"-v",
"-s",
".",
"-p",
"test_*.py"
],
"python.testing.pytestEnabled": false,
"python.testing.unittestEnabled": true,
"[python]": {
"editor.defaultFormatter": "ms-python.autopep8",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": "explicit",
"source.fixAll": "explicit"
},
"editor.rulers": [
80,
]
},
"black-formatter.args": [
"--line-length",
"80"
],
"python.analysis.autoImportCompletions": true,
"python.analysis.typeCheckingMode": "off",
"python.envFile": "${workspaceFolder}/.vscode/.env",
// "isort.args":["--profile", "black"]
}
Я вижу все тесты в Test explorer. У меня есть тестовая база данных postgres, запущенная в контейнере docker вне vscode в режиме сетевого хоста на ubuntu. У меня есть файл .vscode/.env со всеми переменными env, необходимыми для запуска тестового случая.
При запуске теста из test_explorer я получаю ошибку
django.db.utils.IntegrityError: duplicate key value violates unique constraint "user_category_name_key"
DETAIL: Key (name)=(Admin) already exists.
Если я попробую запустить тот же тестовый пример через Run and debug
, используя следующий launch.json
файл - он успешно работает
{
"version": "0.2.0",
"configurations": [
{
"name": "Django test",
"type": "debugpy",
"request": "launch",
"program": "${workspaceFolder}/manage.py",
"args": [
"test",
"app1.tests.test1.test_abc",
"--keepdb"
],
"django": true,
"envFile": "${workspaceFolder}/.vscode/.env",
"console": "integratedTerminal"
}
]