Я использую Mocha, чтобы проверить мои вещи JavaScript. Мой тестовый файл содержит 5 тестов. Возможно ли выполнить определенный тест (или набор тестов), а не все тесты в файле?
javascript
mocha
Миша Морошко
источник
источник
--grep
фильтруют только по@
тегам.mocha some/test.js
) не работает вообще. Спасибо!logs a bcd
который содержитlogs a
подстроку? Regexp^$
не работает на 0.10.2.В зависимости от вашей модели использования, вы можете просто использовать только . Мы используем стиль TDD; это выглядит так:
Только этот тест будет запущен из всех файлов / комплектов.
источник
it.only
.it.only
не будет работать вместе сgiven
из мокко-Testdata . И это легко забыть удалить позже.eslint-plugin-mocha
есть правило,no-exclusive-tests
которое поймает вас, если вы забудете удалить.only
.Если вы используете
npm test
(используя сценарии package.json), используйте дополнительный,--
чтобы передать параметр в mochaнапример
npm test -- --grep "my second test"
РЕДАКТИРОВАТЬ : Похоже,
--grep
может быть немного суетливый (вероятно, в зависимости от других аргументов). Ты можешь:Измените package.json:
Или альтернативно использовать,
--bail
который кажется менее суетливымисточник
--grep
может быть немного суетливым - попробуйте поместить его сразу после мокко в записи сценария npm. Остальноеnpm test -- --bail
полезно для--grep
спасло мой день! Большое спасибо. PS. Я на Windows, работаюnpm test -- --grep @tag
запустить одиночный тест по имени файла
На самом деле, можно также запустить один тест mocha по имени файла (а не просто через «it () - grep-grepping»), если вы удалите шаблон glob (например,
./test/**/*.spec.js
) из ваших mocha.opts, соответственно создайте копию без:Вот мой mocha.single.opts (отличается только отсутствием вышеупомянутой строки глобуса)
Фон: хотя вы можете переопределить различные ключи из файла opts (начиная с
--
), вы не можете переопределить глобус . Эта ссылка также имеет некоторые объяснения.Подсказка: если
node_modules/.bin/mocha
вас смущает, используйте местный пакет мокко. Вы также можете написать простоmocha
, если у вас установлено глобально.И если вы хотите, чтобы все удобства
package.json
: Still: удалите**/*
-ish glob из вашегоmocha.opts
, вставьте их сюда, для полного тестирования, оставьте их для отдельного тестирования:использование:
соответственно
(обратите внимание
--
!)источник
Warning: Could not find any test files matching pattern: $1
Просто используйте .only, прежде чем «описать», «это» или «контекст». Я использую «$ npm run test: unit», и он выполняет только модули с .only.
источник
Привет выше решения не работали для меня. Другой способ запустить один тест
Это помогает запустить тестовый набор из одного файла и с определенным именем.
источник
-g
и вам не нужно будет указывать имя файла. Если вы не можете написать достаточно избирательное выражение, это означает, что вы не называете свои тесты должным образом.например:
здесь 'test / api / controllers / test.js' - это путь к файлу.
источник
Вы можете попробовать "it.only"
в этом будет исполнен только первый
источник
--forbid-only
CI / сервер сборки..only
имеет тенденцию проникать в основную ветвь и отключать другие тесты, поскольку они просто больше не будут выполняться. Я пришел к мысли о том, как изменить код для запуска различных тестов. Бегущий по тестам должен определить, какие тесты должны выполняться (так называемые теговые тесты), а не разработчик.it.only
Заглядывая в https://mochajs.org/#usage мы видим, что просто используем
буду работать. Вы можете опустить «.js» в конце.
источник
Не уверен, почему метод grep не работает для меня при использовании теста npm. Это работает, хотя. Мне также нужно указать папку теста также по некоторым причинам.
тест npm - test / sometest.js
источник
Объедините все ваши тесты в один файл test.js и ваш пакет json add scripts как:
Введите команду в вашем тестовом каталоге:
источник