Skip to main content

Automatic test execution on file changes

Project description

Why

Because unit testing is way more fun

  • when you don't have to switch out of your editor to get feedback from unit tests.
  • when the feedback period from a change to feedback from your tests is shorter.

I've seen the usefullness of a tool like this when toying with rubys autotest command, but didn't like the complications of getting that highly optimized code to work with setups like VMs and Docker Containers where file system notifications don't reliably work.

So this skips all the optimizations and just uses the simplest possible algorithm - iterate all files and see what changed. And that works surprisingly well.

In addition to that it's dead simple, has no dependencies and is really small.

Usage

% watching_testrunner --help
Usage: watching_testrunner [options] [--] command [arguments...]

Options:
  -h, --help            show this help message and exit
  -b BASEPATH, --basepath=BASEPATH
                        base path to watch for changes
  -p WATCH_WILDCARD, --pattern=WATCH_WILDCARD
                        glob-style pattern for file names to watch

Examples

$ watching_testrunner nosetests

This will run nosetests whenever any python file below the current directory changes

$ watching_testrunner -- nosetests $NOSETESTS_ARGUMENTS

Will run nosetests all the same, but will not try to parse any of the nosetests arguments.

$ watching_testrunner --basepath foo/bar --pattern="*" nosetests $NOSETESTS_ARGUMENTS

This will run nosetests whenever any file below ./foo/bar changes.

$ watching_testrunner --basepath path/to/js_tests --pattern="*.js" jasmine --console

This will run jasmine --console whenever any js file below ./path/to/js_tests changes (i.e. you can use the watching testrunner to get auto test execution using any tool for any language)

Many thanks to

  • Felix Schwarz for the original implementation after me pestering him about this idea
  • Tony Narlock for prompting me to port this to python 3, hosting it on his account and caring for it's continued development

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

watching_testrunner-1.2.2.tar.gz (4.4 kB view details)

Uploaded Source

Built Distributions

watching_testrunner-1.2.2-py3-none-any.whl (4.8 kB view details)

Uploaded Python 3

watching_testrunner-1.2.2-py2.py3-none-any.whl (4.8 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file watching_testrunner-1.2.2.tar.gz.

File metadata

  • Download URL: watching_testrunner-1.2.2.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for watching_testrunner-1.2.2.tar.gz
Algorithm Hash digest
SHA256 5677e007fdb1a5e7d20bcc8b80e06ba1ccd4062002cd1b03ee41169cf9859f77
MD5 7bbbd29c179df7c436282f3ed002ead9
BLAKE2b-256 556c69aa0bf1ae51e284849049da62ff9cc2a8a9aa5bbe07e0ff8f220d52b440

See more details on using hashes here.

File details

Details for the file watching_testrunner-1.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for watching_testrunner-1.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f061a0ab9f72297a40ef89a3fb970712838dfbc17116965e5293df0d47359d99
MD5 a1dd3533136e38f73cd31e3b64ceef36
BLAKE2b-256 093925f6f83ddf2c8ea2a28bcb56db56538420b636385d4a8dc1c607e8c887ce

See more details on using hashes here.

File details

Details for the file watching_testrunner-1.2.2-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for watching_testrunner-1.2.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 327838728513e2ecdd9154348a5683d4d2e6d5ed4fdd1472ee1016f8407adbb0
MD5 24dacb2d78e7bb48225130c5da98da45
BLAKE2b-256 710d743ab6536312728c07f467f28c17d0e1f136a39dfdc477127f869af2f4ff

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page