Using the test Command
Learn to run and filter tests in Deno and to fail fast while running tests.
We'll cover the following
So far, we’ve learned how to run, install, and cache modules, as well as how to use permissions. As we write and run more complex programs, the need to test them starts to arise. We can do this with the test
command.
Test runner
Included as part of the main binary, Deno also provides a test runner. The command for it, not surprisingly, is called test
.
In this lesson, we’ll mainly explore the test
command itself and not the test syntax. We’ll look at the syntax and best practices for it in more depth later in the course.
The test
command finds files to run based on the {*_,*.,}test.{js,mjs,ts,jsx,tsx}
glob expression.
Since glob expressions might not be too intuitive to read, we’ll explain them briefly.
It matches any files with the js
, mjs
, ts
, jsx
, and txs
extensions and that have test
in
their name preceded by an underscore (_
) or a dot (.
).
A few examples of files that will match the expression and be considered tests are as follows:
example.test.ts
example_test.js
example.test.jsx
example_test.mjs
Deno tests also run inside the sandbox environment, so they need permissions. When running tests, it’s also possible to use the debugging commands we learned about earlier.
Filtering tests
A common need when we have a complete test suite is to run only a specific part of it. For this, the test
command provides the --filter
flag.
Imagine that we have the following file with two tests defined:
Get hands-on with 1400+ tech skills courses.