An implementation of autotest for Python inspired by autotest and guard.
autopytest observes file change events and whenever you save a file it runs the appropriate tests with pytest.
autopytest observes file modified events and will perform the following:
- source files
- will find and run the associated individual test file
- upon success, will run the entire suite
- if we can't find a matching test, run the entire suite
- test files
- will run that test file
- upon success, will run the entire suite
# pip
pip install autopytest
# poetry
poetry add autopytestIn your pyproject.toml add the following.
[tool.autopytest]
source_directories = ["app"]
test_directory = "tests"cd {project}
autopytest
autopytest {path}- Test naming is currently important.
- Multiple nested directory structures are supported as long as the convention is followed.
[tool.autopytest]
source_directories = ["app", "lib"]
test_directory = "tests"Given the above configuration. You should use a directory structure like the following. e.g. If app/package/module.py is edited we will attempt to locate and run tests/app/package/test_module.py
📁 app
📄 __init__.py
📁 package
📄 __init__.py
📄 module.py
📁 lib
📁 tests
📄 __init__.py
📁 app
📁 package
📄 test_module.py
📁 lib[tool.autopytest]
include_source_dir_in_test_path = false
source_directories = ["src"]
test_directory = "tests"If you are developing library and want your folder structure like the following. e.g. If src/package/module.py is edited we will attempt to locate and run tests/package/test_module.py
📁 src
📁 package
📄 __init__.py
📄 module.py
📁 tests
📁 package
📄 test_module.py