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...>


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



Specifies the folder to use for caching downloaded modules. (default: ~/.ceylon/cache)


Determines if and how compilation should be handled. Allowed flags include: never, once, force, check.


Specifies the current working directory for this tool. (default: the directory where the tool is run from)


Shows more detailed output in case of errors.


Specifies the XML file to use to load Maven artifact overrides. See for information. Deprecated: use --overrides.


Indicates that the default repositories should not be used.


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.


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 for information. Experimental.


Specifies a module repository containing dependencies. Can be specified multiple times. (default: modules, ~/.ceylon/repo,


Generates the test results report into HTML format, output directory is set with --out (experimental).


Specifies the system repository containing essential modules. (default: $CEYLON_HOME/repo)


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..


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.


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.


Specifies which version of the test module to use.


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).


The following would execute tests in the com.example.foobar module:

ceylon test-js com.example.foobar/1.0.0