I have a bunch of unittests that import stuff not from /python2.7/site-packages/
but from a completely different directory. So what I do is do some monkey-patching
Yes.
I am on a Mac, using PyCharm 4.5.1 Professional Edition. Your platform and version may be a bit different, but if you make sure you are on the latest version, it should work.
EDIT: I've updated this answer and uploaded a new screenshot.
What you want is to set the working directory and the PYTHONPATH
environment variable.
The working directory sets the directory to be used by the running task. and the PYTHONPATH
environment variable adds directories to sys.path
Go to Run
-> Edit Configurations
In the dialog box that comes up, navigate to Defaults
-> Python tests
-> Unittests
Set your working directory and your PYTHONPATH
environment variable and you are all set. Your tests will be automatically run from that working directory and have the sys.path that you want. You can include multiple paths in your PYTHONPATH
environment variable if you separate them with a colon :
For example:
PYTHONPATH=/path/to/dir:/path/to/other/dir
If you already have some existing test configurations, you may want to delete them so that they get re-created when you run tests or set the working directory and PYTHONPATH
for each of them. You can delete them from the same dialog window
Run
-> Edit Configurations
then expand Python Tests
to see your existing test configurations
If you don't want to delete your existing test configurations, just specify the working directory for each existing test configuration individually.
This is one fairly easy, follow this path:
<your project name>
sys.path
for
'show paths for the selected interpreter'
There is now a better way to do it. You can Mark Directory as
as Sources root
. This option will appear in the bottom when you right click on any directory in Project.