I have just switched over to using PyCharm as my primary Python editor, and am curious to know how I can configure it so that every time I save a file, that the unit-test corresponding to the modified file will be run? (after poking around the documentation, I have not found a clear explanation of how to do this)
When you run a unittest you get a new unittest window. In this window there's a button where you can toggle auto-testing on and off, see below. You can set the auto-test delay as well (look for the gear-icon in the same window.
You can try File Watchers plugin to execute task on files modification.
example config:
Here is the way that I decided to accomplish my objective.
I use file watchers (PyCharm->Preferences->File Watchers
) to monitor the python source files for modifications. Source files are located in a directory called src
. For my purposes, each unit test is located in a directory that is parallel to the src
directory called test_src
, in which each file src/[file_name].py
will have an associated test file called test_src/test_[file_name].py
. Unit tests will by run by py.test
.
To accomplish this, I use the following setup in the File Watchers dialog:
File type: "Python Files"
Scope: "Only watch files in src directory"
Program: /usr/local/bin/py.test
Arguments: $ProjectFileDir$/test_src/test_$FileName$
Working directory: $ProjectFileDir$
I also unchecked "Immediate file synchronization" as I only want to run the unit tests when the file is saved.
Note that the "Scope" is used for specifying which files will be monitored.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With