mirror of
https://github.com/vitest-dev/vitest.git
synced 2025-12-08 18:26:03 +00:00
68 lines
2.0 KiB
Markdown
68 lines
2.0 KiB
Markdown
# TestModule
|
|
|
|
The `TestModule` class represents a single module in a single project. This class is only available in the main thread. Refer to the ["Runner API"](/advanced/runner#tasks) if you are working with runtime tasks.
|
|
|
|
The `TestModule` instance always has a `type` property with the value of `module`. You can use it to distinguish between different task types:
|
|
|
|
```ts
|
|
if (task.type === 'module') {
|
|
task // TestModule
|
|
}
|
|
```
|
|
|
|
::: warning Extending Suite Methods
|
|
The `TestModule` class inherits all methods and properties from the [`TestSuite`](/advanced/api/test-suite). This guide will only list methods and properties unique to the `TestModule`.
|
|
:::
|
|
|
|
## moduleId
|
|
|
|
This is usually an absolute unix file path (even on Windows). It can be a virtual id if the file is not on the disk. This value corresponds to Vite's `ModuleGraph` id.
|
|
|
|
```ts
|
|
'C:/Users/Documents/project/example.test.ts' // ✅
|
|
'/Users/mac/project/example.test.ts' // ✅
|
|
'C:\\Users\\Documents\\project\\example.test.ts' // ❌
|
|
```
|
|
|
|
## state
|
|
|
|
```ts
|
|
function state(): TestModuleState
|
|
```
|
|
|
|
Works the same way as [`testSuite.state()`](/advanced/api/test-suite#state), but can also return `queued` if module wasn't executed yet.
|
|
|
|
## diagnostic
|
|
|
|
```ts
|
|
function diagnostic(): ModuleDiagnostic
|
|
```
|
|
|
|
Useful information about the module like duration, memory usage, etc. If the module was not executed yet, all diagnostic values will return `0`.
|
|
|
|
```ts
|
|
interface ModuleDiagnostic {
|
|
/**
|
|
* The time it takes to import and initiate an environment.
|
|
*/
|
|
readonly environmentSetupDuration: number
|
|
/**
|
|
* The time it takes Vitest to setup test harness (runner, mocks, etc.).
|
|
*/
|
|
readonly prepareDuration: number
|
|
/**
|
|
* The time it takes to import the test module.
|
|
* This includes importing everything in the module and executing suite callbacks.
|
|
*/
|
|
readonly collectDuration: number
|
|
/**
|
|
* The time it takes to import the setup module.
|
|
*/
|
|
readonly setupDuration: number
|
|
/**
|
|
* Accumulated duration of all tests and hooks in the module.
|
|
*/
|
|
readonly duration: number
|
|
}
|
|
```
|