I am trying to set up a workspace in VS Code and I want to be able to run it in venv.
root
- app
-/- modules
-/-/- __init__.py
-/-/- myModule.py
-/-/- myModule2.py
-/- __init__.py
-/- myApp.py
- test
-/- myTest.py
- venv
myApp.py
import random
import numpy as np
import modules.myModule as mm
x = mm.main()
myModule.py
from app.modules import myModule2
def main():
x = myModule2()
return x
myTest.py
import unittest
from app.modules.myModule import main
class Test_Foo(unittest.TestCase):
def test_bar(self):
x = main()
assertEqual(x, 'foobar', 'not equal')
if __name__ == '__main__':
unittest.main()
The issue I'm having is that my own modules can either be run in debug or in test (as unit test) but the same set up can not run for both. When I have from app.modules import myModule2
I can run test but not debug and when I have from modules import myModule2
I can run debug but not test.
my launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal"
}
]
}
my setting.json
{
"python.testing.unittestArgs": [
"-v",
"-s",
"./test",
"-p",
"*test.py"
],
"python.testing.pytestEnabled": false,
"python.testing.unittestEnabled": true,
"python.analysis.extraPaths": [
"./app"
]
}
How do I set up my workspace to be able to run both?
I run debug on the file myApp.py, and I run the test from test explorer.
The error I get when running debug is:
Exception has occurred: ModuleNotFoundError
No module named 'app'
The exception is caught in the file myModule.py in line from app.modules import myModule2
.