Перейти до основного змісту

Jest 13.0: Flow & REPL

· 3 хвилини читання

Сьогодні ми з радістю повідомляємо про наступний великий реліз Jest. Ми внесли значні зміни в Jest, які будуть корисні вам і всій інфраструктурі JavaScript тестування Facebook. Найголовніше, під час останнього Jest хакатону Facebook, ми додали статичні типи для всього коду Jest. Fifteen people worked for a day and night to add Flow types to Jest and to add new features to Jest. Типи Flow виконують дві задачі: по-перше, ми вважаємо, що код пишеться, аби бути прочитаним. Зазвичай, код пишуть лише один раз, але читають десятки людей протягом багатьох років. Додавання статичних типів в проєкт допомагає документувати код і пояснювати архітектуру Jest. По-друге, додавання статичних типів полегшує обслуговування та дозволить нам більш впевнено рефакторити Jest, не ламаючи наявний код.

Проєкт Flow значно розвинувся всередині Facebook й успішно використовується в багатьох наших фреймворках і коді майже всіх наших продуктів. Екземпляри чудово розпаралелюються: процес йде файл за файлом, поки не типізовано достатню кількість бази коду. Потім, Flow надає реальні значення та описові інструкції великих змін. За допомогою цього, було виявлено багато крайніх випадків і помилок.

With the help of lerna, we continued to modularize the Jest project. With just a small update to the configuration, Flow and lerna now get along well with each other. Splitting up Jest into packages helped us rethink module boundaries and enabled us to ship useful packages standalone: The jest-runtime and jest-repl cli tools now allow you to run scripts in a sandboxed Jest environment, enabling you to run and debug your app from the command line. This is especially helpful for projects that use Facebook's @providesModule module convention. To get started, just install jest-repl and run it in the same folder you normally run your tests in! We also published a jest-changed-files package that finds changed files in version control for either git or hg, a common thing in developer tools.

Нові та покращені функції

  • Added a notification plugin that shows a test run notification when using --notify.
  • Added a browser config option to properly resolve npm packages with a browser field in package.json if you are writing tests for client side apps.
  • Удосконалено повідомлення "тестів не знайдено", яке тепер повідомляє, які тести були знайдені та як вони фільтрувались.
  • Added jest.isMockFunction(jest.fn()) to test for mock functions.
  • Поліпшено вивід тестового генератора звітів і додано підсумок тестового звіту помилок під час масового запуску тестів.
  • Added support for mocking virtual modules through jest.mock('Module', implementation, {virtual: true}).
  • Removed the .haste_cache folder. Jest тепер використовує тимчасове розташування файлів, якому операційна система надає перевагу.
  • Додано тривалість окремих тестів у детальний режим.
  • Додано можливість запису знімків в Jest. Щодо цієї функції, ми скоро опублікуємо окремий допис у блозі.

Finally, we have received a complete website redesign done by Matthew Johnston and added documentation for using Jest with webpack. Happy Jesting!