Небольшой (около 80 строк TypeScript) тестировщик, ориентированный на простоту и скорость.
$ xv ./src src/add.test.js: 0,103 мс src/sub.test.js: 0,064 мс
Извлечено из lowdb. Самый быстрый тест-раннер по этому тесту.
Если вы использовали другие средства запуска тестов, вы, вероятно, потратили значительное количество времени на чтение документации, ее настройку, поддержку и отладку.
Будучи чрезвычайно простым, xv не мешает вам работать и быстрее работать. Фактически вся проектная документация умещается на этой странице ;)
npm установить xv --save-dev
Создайте тестовый файл и используйте встроенный модуль assert
Node:
// src/add.test.jsimport Assert from 'node:assert/strict'import add from './add.js'// Это простой код Node, здесь нет xv APIexport function testAdd() { утверждать.equal(добавить(1, 2), 3)}
Отредактируйте package.json
:
{ "scripts": {"test": "xv src" } }
Запустите тесты:
npm test # запускаем все тестовые файлы в ./srcnpx xv src/add.test.js # запускаем один тестовый файл
По умолчанию xv будет искать файлы с именами: *.test.js
, test.js
, *.test.ts
и test.ts
npm установить ts-node --save-dev
{ "scripts": {"test": "xv --loader=ts-node/esm src" } }
Скомпилируйте файлы .ts
с помощью tsc
и запустите xv
для скомпилированных файлов .js
.
Например, если ваши скомпилированные файлы находятся в lib/
, отредактируйте package.json
так, чтобы xv
запускался после tsc
:
{ "scripts": {"test": "tsc && xv lib" } }
Если вы публикуете в npm, отредактируйте package.json
чтобы исключить скомпилированные тестовые файлы:
{ "files": ["lib","!lib/**/*.test.js","!lib/**/test.js" ] }
// src/add.test.jsconst Assert = require('assert').strict;const add = require('./add')exports.testAdd = function() { утверждать.equal(добавить(1, 2), 3)}
xv не имеет режима просмотра. Если эта функция необходима, рекомендуется использовать такие инструменты, как watchexec или chokidar-cli, для повторного запуска xv при наличии изменений.