mirror of
https://github.com/denoland/deno.git
synced 2024-12-22 15:24:46 -05:00
f5e46c9bf2
This looks like a massive PR, but it's only a move from cli/tests -> tests, and updates of relative paths for files. This is the first step towards aggregate all of the integration test files under tests/, which will lead to a set of integration tests that can run without the CLI binary being built. While we could leave these tests under `cli`, it would require us to keep a more complex directory structure for the various test runners. In addition, we have a lot of complexity to ignore various test files in the `cli` project itself (cargo publish exclusion rules, autotests = false, etc). And finally, the `tests/` folder will eventually house the `test_ffi`, `test_napi` and other testing code, reducing the size of the root repo directory. For easier review, the extremely large and noisy "move" is in the first commit (with no changes -- just a move), while the remainder of the changes to actual files is in the second commit.
43 lines
1.1 KiB
Markdown
43 lines
1.1 KiB
Markdown
# Deno runtime tests
|
|
|
|
Files in this directory are unit tests for Deno runtime.
|
|
|
|
Testing Deno runtime code requires checking API under different runtime
|
|
permissions. To accomplish this all tests exercised are created using
|
|
`Deno.test()` function.
|
|
|
|
```ts
|
|
import {} from "./test_util.ts";
|
|
|
|
Deno.test(function simpleTestFn(): void {
|
|
// test code here
|
|
});
|
|
|
|
Deno.test(
|
|
{
|
|
ignore: Deno.build.os === "windows",
|
|
permissions: { read: true, write: true },
|
|
},
|
|
function complexTestFn(): void {
|
|
// test code here
|
|
},
|
|
);
|
|
```
|
|
|
|
## Running tests
|
|
|
|
There are two ways to run `unit_test_runner.ts`:
|
|
|
|
```sh
|
|
# Run all tests.
|
|
cargo run --bin deno -- test --allow-all --unstable --location=http://js-unit-tests/foo/bar cli/tests/unit/
|
|
|
|
# Run a specific test module
|
|
cargo run --bin deno -- test --allow-all --unstable --location=http://js-unit-tests/foo/bar cli/tests/unit/files_test.ts
|
|
```
|
|
|
|
### Http server
|
|
|
|
`target/debug/test_server` is required to run when one's running unit tests.
|
|
During CI it's spawned automatically, but if you want to run tests manually make
|
|
sure that server is spawned otherwise there'll be cascade of test failures.
|