Skip to content

Latest commit

 

History

History
99 lines (71 loc) · 2.49 KB

File metadata and controls

99 lines (71 loc) · 2.49 KB

Docker image for Sublime Text UnitTesting

Recommended usage

Use the launcher script:

# from UnitTesting repo root
./docker/ut-run-tests /path/to/package
./docker/ut-run-tests /path/to/package --file tests/test_example.py

Or call it via absolute path from any package directory:

/path/to/UnitTesting/docker/ut-run-tests .

If this directory is on your PATH, you can run ut-run-tests directly.

The launcher calls docker/run_tests.py, builds/uses a local image, mounts the package at /project, runs tests headlessly, and keeps a cache volume for fast reruns.

By default it:

  • builds unittesting-local image from ./docker if missing
  • mounts your repo as /project
  • runs UnitTesting through the same CI shell entrypoints
  • stores Sublime install/cache in docker volume unittesting-home
  • synchronizes only changed files into Packages/<Package> using rsync

Manual docker usage

# build from UnitTesting/docker
docker build -t unittesting-local .

# run from package root
docker run --rm -it \
  -e PACKAGE=$PACKAGE \
  -v $PWD:/project \
  -v unittesting-home:/root \
  unittesting-local run_tests

Fast reruns

The container entrypoint writes a marker in /root/.cache/unittesting. With -v unittesting-home:/root, bootstrap/install runs once and later runs only refresh your package files and execute tests.

Refresh/update controls (without direct docker commands)

Use launcher flags instead of calling docker manually:

  • --refresh-cache: recreate unittesting-home cache volume (forces fresh bootstrap, including Sublime Text/Package Control install path)
  • --refresh-image: rebuild local image (for Dockerfile/entrypoint changes)
  • --refresh: both --refresh-cache and --refresh-image

Examples:

ut-run-tests . --refresh-image
ut-run-tests . --refresh-cache
ut-run-tests . --refresh

Dry run (metadata and schedule only)

Use --dry-run to print runner metadata (including detected Sublime Text and Package Control versions) plus the generated schedule.

ut-run-tests . --dry-run

Colored output

Use --color to control ANSI colors in test output:

  • --color auto (default): color only when stdout is a TTY
  • --color always: force color
  • --color never: disable color
ut-run-tests . --color always

Run a single test file

docker run --rm -it \
  -e PACKAGE=$PACKAGE \
  -v $PWD:/project \
  -v unittesting-home:/root \
  unittesting-local run_tests --tests-dir tests --pattern test_example.py