Test runner for backend + frontend with integrated watch mode and report file generation.
Used in UIX.
Currently supported languages:
- TypeScript
- JavaScript
- DATEX
Example
import { Assert } from "unyt-tests/testing/assertions.ts";
import { Test, Timeout } from "unyt-tests/testing/test.ts"
@Test export class DatexJSONObjects {
@Test(
[1, 2, 3],
[4, 4, 8],
[6, 2, 8]
)
sumIsCorrect(a:number, b:number, sum:number){
Assert.equalsStrict(a+b, sum)
}
@Test
testWithOutParameters(){
Assert.true(true)
}
@Test
@Timeout(10*60)
async longDurationTest(){
// test can take up to 10 minutes (10*60s) to complete
}
}
deno run -A --import-map http://cdn.unyt.org/importmap.json https://cdn.unyt.org/unyt-tests/run.ts -w
With the -w
flag, the tests are run in watch mode - when you update a test file, the tests are automatically reevaluated.
As a default import map, https://cdn.unyt.org/importmap.json
can be used, but you can also use a different import map.
deno run -Aq --import-map [IMPORT_MAP] https://cdn.unyt.org/unyt-tests/run.ts -w testA.ts testB.js testC.js testD.dx
See <RUN.md> or run
deno run -Aq --import-map [IMPORT_MAP] https://cdn.unyt.org/unyt-tests/run.ts -h
--color
or-c
: Set the color mode of the output ("rgb", "simple", or "none")--reporttype
: Set the type for the report file generation, currently supported types: "junit"--reportfile
: Set the path for the report output. When this option is set, a report is generated after all tests are finished.--watch
or-w
: Run in watch mode, tests get automatically executed when a test file is updated--verbose
or-v
: verbose output for debugging purposes
You can import the testLogger
from unyt-tests/core/logger.ts
to show logs in the console even in watch mode.
import { testLogger } from "unyt-tests/core/logger.ts";
@Test export class MyTests {
@Test firstTest() {
testLogger.log("hello");
}
}
To test the test library locally, run
deno run -Aq --import-map ./importmap.local.json ./run.ts test_examples/