## Synopsis
`ceylon test-js [--cacherep=<url>] [--compile[=<flags>]] [--cwd=<dir>] [--debug=<debug>] [--maven-overrides=<file>] [--no-default-repositories] [--node-exe=<node-exe>] [--offline] [--out=<file>] [--overrides=<file>] [--rep=<url>...] [--report] [--sysrep=<url>] [--tag=<tag>...] [--tap[=<file>]] [--test=<test>...] [--timeout=<seconds>] [--verbose[=<flags>]] [--version=<version>] [--xml-junit-report] [--] <modules...>`

## Description
Executes tests in specified `<modules>`. The `<modules>` arguments are the names of the modules to test with an optional version.

## Options
`--cacherep=url` | Specifies the folder to use for caching downloaded modules. (default: `~/.ceylon/cache`)
`--compile[=flags]` | Determines if and how compilation should be handled. Allowed flags include: `never`, `once`, `force`, `check`.
`--cwd=dir` | Specifies the current working directory for this tool. (default: the directory where the tool is run from)
`--debug=debug` | Shows more detailed output in case of errors.
`--maven-overrides=file` | Specifies the XML file to use to load Maven artifact overrides. See http://ceylon-lang.org/documentation/current/reference/repository/maven/ for information. Deprecated: use --overrides.
`--no-default-repositories` | Indicates that the default repositories should not be used.
`--node-exe=node-exe` | The path to the node.js executable. Will be searched in standard locations if not specified.
`--offline`, `-L` | Enables offline mode that will prevent connections to remote repositories.
`--out=file` | Sets the folder to use for reports. Defalts to `reports/{test|test-js}`.
`--overrides=file`, `-O file` | Specifies the XML file to use to load module overrides. See http://ceylon-lang.org/documentation/current/reference/repository/maven/ for information. Experimental.
`--rep=url` | Specifies a module repository containing dependencies. Can be specified multiple times. (default: `modules`, `~/.ceylon/repo`, `https://modules.ceylon-lang.org/repo/1`)
`--report` | Generates the test results report into HTML format, output directory is set with `--out` (experimental).
`--sysrep=url` | Specifies the system repository containing essential modules. (default: `$CEYLON_HOME/repo`)
`--tag=tag` | Specifies which tests will be run according to their tags. It can be used as include filter, so only tests with specified tag will be executed. But it can be used also as exclude filter, if tag name is prefixed with !, so only tests without specified tag will be executed..
`--tap[=file]` | Enables the Test Anything Protocol v13 and writes the results to the specified file. If the file name is empty or `-`, print to standard output.
`--test=test` | Specifies which tests will be run.
`--timeout=seconds`, `-T seconds` | Sets the timeout for connections to remote repositories, use 0 for no timeout (default: 20).
`--verbose[=flags]`, `-d` | Produce verbose output. If no `flags` are given then be verbose about everything, otherwise just be verbose about the flags which are present. Allowed flags include: `all`, `loader`.
`--version=version` | Specifies which version of the test module to use.
`--xml-junit-report` | Generates the test results report into JUnit XML format, output directory is set with `--out` (experimental).

## Compile flags
The `--compile` option can take the following flags: never - Never perform any compilation once - Only compile when the compiled module is not available check - Compile when the sources are newer than the compiled module force - Always compile If the flag is given without an argument it's the same as specifying `check`. If no flag is given at all it's the same as specifying `never`.

## Configuration file
The test-js tool accepts the following option from the Ceylon configuration file: `testtool.compile` (the equivalent option on the command line always has precedence).

## EXAMPLE
The following would execute tests in the `com.example.foobar` module:
    ceylon test-js com.example.foobar/1.0.0