diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2020-03-14 11:53:20 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-14 11:53:20 +0100 |
commit | d6bbbdda7580d74d78fecae6c99b850bc90414c5 (patch) | |
tree | f744495777d6ae8652030fa08d0e523670031f1c /cli/js/tests/README.md | |
parent | 0f6acf275370cae09ffb3f6950a3926424f3b024 (diff) |
Update CLI for unit_test_runner.ts (#4352)
* drop server guard before unit test result check
To prevent cascading test failures when js_unit_test http server
guard is dropped before asserting that tests were successful.
This is really a band-aid and doesn't solve underlying issue with
http server.
* Update CLI for unit_test_runner.ts
* Change cli/js/tests/unit_test_runner.ts command line interface to work in 3
modes:
- "one-off" - run tests that match permissions of currently running
process
- "master" - run tests for all possible permission combinations, by
spawning subprocesses running in "worker" mode and communicating via
TCP socket; requires elevated permissions
- "worker" - run tests for set of permissions provided by CLI arg;
requires elevated permissions to setup TCP connection to "master";
after initial setup process drops permissions to given set
* Support filtering of tests by string passed after "--" CLI arg
* Update cli/js/tests/README.md
Diffstat (limited to 'cli/js/tests/README.md')
-rw-r--r-- | cli/js/tests/README.md | 57 |
1 files changed, 52 insertions, 5 deletions
diff --git a/cli/js/tests/README.md b/cli/js/tests/README.md index 5809224f7..40c3410e1 100644 --- a/cli/js/tests/README.md +++ b/cli/js/tests/README.md @@ -37,11 +37,58 @@ ways: - sanitization of async ops - ensuring that tests don't leak async ops by ensuring that all started async ops are done before test finishes -`unit_test_runner.ts` is main script used to run unit tests. +## Running tests + +`unit_test_runner.ts` is the main script used to run unit tests. Runner discoveres required permissions combinations by loading `cli/js/tests/unit_tests.ts` and going through all registered instances of -`unitTest`. For each discovered permission combination a new Deno process is -created with respective `--allow-*` flags which loads -`cli/js/tests/unit_tests.ts` and executes all `unitTest` that match runtime -permissions. +`unitTest`. + +There are three ways to run `unit_test_runner.ts`: + +- run tests matching current process permissions + +``` +// run tests that don't require any permissions +target/debug/deno unit_test_runner.ts + +// run tests with "net" permission +target/debug/deno --allow-net unit_test_runner.ts + +target/debug/deno --allow-net --allow-read unit_test_runner.ts +``` + +- run all tests - "master" mode, that spawns worker processes for each + discovered permission combination: + +``` +target/debug/deno -A unit_test_runner.ts --master +``` + +By default all output of worker processes is discarded; for debug purposes +`--verbose` flag can be provided to preserve output from worker + +``` +target/debug/deno -A unit_test_runner.ts --master --verbose +``` + +- "worker" mode; communicates with parent using TCP socket on provided address; + after initial setup drops permissions to specified set. It shouldn't be used + directly, only be "master" process. + +``` +target/debug/deno -A unit_test_runner.ts --worker --addr=127.0.0.1:4500 --perms=net,write,run +``` + +### Filtering + +Runner supports basic test filtering by name: + +``` +target/debug/deno unit_test_runner.ts -- netAccept + +target/debug/deno -A unit_test_runner.ts --master -- netAccept +``` + +Filter string must be specified after "--" argument |