TestSpecification
Класс TestSpecification
описывает, какой модуль следует запускать как тест, и его параметры.
Вы можете создать спецификацию, только вызвав метод createSpecification
для тестового проекта:
const specification = project.createSpecification(
resolve('./example.test.ts'),
[20, 40] // необязательные строки с тестами
);
createSpecification
ожидает разрешенный идентификатор модуля. Он не автоматически определяет файл и не проверяет его существование в файловой системе.
taskId
Идентификатор тестового модуля.
project
Это ссылка на TestProject
, которому принадлежит тестовый модуль.
moduleId
ID модуля в графе модулей Vite. Обычно это абсолютный путь к файлу с использованием разделителя posix:
'C:/Users/Documents/project/example.test.ts'; // ✅
'/Users/mac/project/example.test.ts'; // ✅
'C:\\Users\\Documents\\project\\example.test.ts'; // ❌
testModule
Экземпляр TestModule
, связанный со спецификацией. Если тест еще не был добавлен в очередь выполнения, это будет undefined
.
pool экспериментально
pool
, в котором будет выполняться тестовый модуль.
DANGER
Возможно иметь несколько пулов в одном тестовом проекте, используя poolMatchGlob
и typecheck.enabled
. Это означает, что можно иметь несколько спецификаций с одним и тем же moduleId
, но с разными пулами. В Vitest 4 проект будет поддерживать только один пул, и это свойство будет удалено.
testLines
Это массив строк в исходном коде, где определены тесты. Это поле определяется только в том случае, если методу createSpecification
был передан массив.
Обратите внимание, что если хотя бы на одной из строк нет теста, весь набор тестов будет провален. Пример корректной конфигурации testLines
:
const specification = project.createSpecification(
resolve('./example.test.ts'),
[3, 8, 9]
);
import { test, describe } from 'vitest'
test('verification works')
describe('a group of tests', () => {
// ...
test('nested test')
test.skip('skipped test')
})
toJSON
function toJSON(): SerializedTestSpecification;
toJSON
генерирует объект, совместимый с JSON, который может быть использован режимом браузера или интерфейсом Vitest UI.