Описываю как тестировать программы на JS посредством Vitest
https://vitest.dev — Vitest — vitest.dev — это официальный сайт Vitest, современного и очень быстрого фреймворка для тестирования кода на JavaScript и TypeScript. Тестовая среда нового поколения. Vitest был создан той же командой специально для того, чтобы идеально работать в паре с Vite. Vitest — это «проверка качества» кода
В папке «src» файлы которые нужно тестировать.
В папке «tests» файлы с тестами.
project/
├── src/
│ └── *.js
├── tests/
│ └── *.test.js
├── package.json
Войти в подпапку с примером например «020_example_filterAdults» и находясь там открываем терминал с текущим путем и выполнить команду. Предварительно должна быть установлена библиотека «Vitest» (можно также использовать для тестирования библиотеку «Jest» создана в Facebook и лучше поддерживает «React Native»).
Также предварительно нужно создать файл «package.json»
npm init -y
Нужно открыть файл «package.json» и внести в него изменения.
"scripts": {
"test": "vitest"
},
Установите Vitest. Выполните эту команду в терминале, чтобы добавить Vitest в зависимости для разработки вашего проекта:
npm install -D vitest
в результате будет создана папка.
Можно запускать тестирование:
npm test
npm test запустит Vitest в watch-режиме — он будет следить за изменениями файлов и автоматически перезапускать тесты при каждом сохранении.
Команда npx vitest run (которую я использовал) — это одноразовый запуск. А npm test (он же vitest без run) — постоянный.
npm test = npx vitest (В package.json прописано "test": "vitest", поэтому npm test вызывает vitest, что эквивалентно npx vitest.)
npm — менеджер пакетов. Устанавливает, удаляет, запускает скрипты из package.json.
npx — запускает исполняемые файлы пакетов напрямую.
npm test → ищет скрипт "test" в package.json → выполняет "vitest" npx vitest → ищет исполняемый файл vitest в node_modules/.bin/ → запускает
Основное отличие: npm работает через скрипты в package.json, а npx запускает команду пакета напрямую, даже если она не прописана в скриптах.
npm test — это стандартное соглашение. Любой разработчик, открыв незнакомый проект, знает: npm test запустит тесты, не вникая какой фреймворк используется (Vitest, Jest, Mocha и т.д.).
npx vitest — нужно знать конкретный инструмент.
Для одного человека на одном проекте разницы нет.
Информация о файле «package.json»:
"type": "module" — позволяет использовать import/export в JS.
"devDependencies" содержит Vitest, чтобы тестировать код.
Пример файла «package.json»:
{
"name": "pr-testirovanie-html-js",
"version": "1.0.0",
"description": "Мини-проект для тестирования JS с Vitest",
"main": "index.js",
"type": "module",
"scripts": {
"test": "vitest",
"test:watch": "vitest --watch"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"vitest": "^4.0.16"
}
}
