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.