Runs pytest in a background process when
Running tests shouldn't be something you have to go out of your way to do. With this Flask extension, the tests will be automatically be run for you, and re-run when code changes.
$ pip install flask-pytest
app = FlaskPytest(app) to your project:
from flask import Flask from flask.ext.pytest import FlaskPytest app = Flask(__name__) app.config.from_pyfile('settings.py') app = FlaskPytest(app) # <-- Add this line @app.route('/') def hello(): return 'Hello World!' app.run()
DEBUG = True
Your tests will now be run in the background:
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) * Restarting with reloader Running tests... ... 3 passed in 1.20 seconds
If a test fails, you'll hear a beep and see the output. Change a source file to reload the development server like normal, which will now re-run the tests.
Flask-pytest runs out-of-the-box without any config. However, you may want to
tweak the behavior here and there. Here's a list of available settings you can
add to your
FLASK_PYTEST_ENABLED: Set to
Trueto run tests regardless of
DEBUG, or to
Falseto disable the extension entirely. If
None, the extension will run when
FLASK_PYTEST_BEEP: Beep when pytest returns a non-zero exit code. Default:
FLASK_PYTEST_EXITFIRST: Stops running tests if a test fails. Default:
FLASK_PYTEST_QUIET: Runs pytest in quiet mode. Default:
- Check the open issues or open a new issue to start a discussion around your feature idea or the bug you found
- Fork the repository, make your changes, and add yourself to Authors.md
- Send a pull request
If your PR has been waiting a while, feel free to ping me on Twitter.