PyCharm - run a corresponding unit test each time

2019-03-31 04:46发布

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)

3条回答
叼着烟拽天下
2楼-- · 2019-03-31 05:24

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.

查看更多
Melony?
3楼-- · 2019-03-31 05:32

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.

auto.test

查看更多
孤傲高冷的网名
4楼-- · 2019-03-31 05:40

You can try File Watchers plugin to execute task on files modification.

example config: Config

查看更多
登录 后发表回答