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

Jest 23: 🔥 Неймовірно Швидке Приємне Тестування

· 7 хвилин читання
Ricky Hanlon
Ricky Hanlon

Сьогодні ми з радістю анонсуємо Jest 23, наш найбільший великий реліз станом на сьогодні! Разом із понад 100 учасниками, ми публікуємо купу оновлень та виправлень помилок. Дякуємо всім у спільноті за допомогу в Покращенні JavaScript Тестування.

We would also like to welcome both Babel and webpack to the Jest community! Після переходу з Mocha на Jest 23 Beta, webpack отримав зменшення загального часу виконання тестових наборів в 6 разів, з 13 хвилин до 2 хв 20 секунд. #blazingmeansgood

Ось деякі з Jest 23 новинок і принципових змін.

Jest 22: Refinements & Custom Runners

· 8 хвилин читання
Simen Bekkhus
Simen Bekkhus

Сьогодні ми анонсуємо нову версію Jest, в якій вдосконалено майже всі частини Jest з метою забезпечення міцнішої бази для тестування. Разом зі спільнотою, ми внесли широкий ряд змін, які допоможуть вам отримати більше від Jest. We are also graduating the custom runners feature out of the experimental stage and added a new package, jest-worker, for parallelizing work across multiple processes. We have compiled a list of highlights below but make sure to check out the (as always) massive changelog.

Jest 20: 💖 Delightful Testing & 🏃🏽 Multi-Project-Runner

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

A few months ago we announced Jest 19 which came with major new features and was the biggest Jest release until today. Jest 20 має подвійну кількість змін у порівнянні з попередньою версією та містить повністю перероблений виконавець тестів, додається новий тестовий API. Новий реліз надає новий рівень персоналізації та конфігурації проєктів, при цьому оновлення не забере багато часу. Beyond Painless JavaScript Testing, we believe Jest is now delivering a Delightful JavaScript Testing experience. Розглянемо глибше найкращі нові функції та зміни:

Multi-Project-Runner & Configuration Overhaul

До сьогодні, Jest міг працювати лише в одному проєкті за раз. Це може перевантажувати процес, якщо ви працюєте над багатьма малими проєктами, кожен з яких має власні налаштування та конфігурацію. В Jest 20, ми повністю переписали виконавець тестів для одночасного запуску багато проєктів в одному екземплярі Jest; наприклад, якщо ви працюєте з фронтом React frontend і беком node.js. Here is a video of Jest running tests for React, Relay, Yarn and Jest all at the same time:

multi-runner

🃏 Jest 19: Immersive Watch Mode & Test Platform Improvements

· 8 хвилин читання
Rogelio Guzman
Rogelio Guzman

Сьогодні ми із задоволенням публікуємо версію 19 платформи для тестування Jest. Це найбільший реліз Jest, який ми коли-небудь публікували, і ми дуже раді показати вам, що ми створили за останні два місяці:

Поглиблений режим спостереження

We completely rewrote the watch mode to make it instant and more extensible. В результаті, отримуємо поглиблений досвід використання: тести одразу перезапускаються після змін у файлі та ми полегшили вибір правильних тестів.

Чудовий досвід для розробників

· 3 хвилини читання
Héctor Ramos
Héctor Ramos

Ми віримо, що чудова документація має вирішальне значення для забезпечення позитивного досвіду для розробників. Документація має бути чіткою, лаконічною та корисною як для нових користувачів, так і для знавців технології. З думкою про це, нещодавно ми витратили деякий час на перероблення сайту Jest.

Покращені документи

Одна з помітних змін - оновлена бічна панель. Документація тепер розподілена на три основні розділи: вступ до Jest, детальні посібники для функціонала та універсальна API довідка.

The Introduction section will guide you from installing Jest and writing your first case, to using Jest's matchers and testing async code. Якщо ви новачок в Jest або хочете швидко освіжити знання, ця частина швидко в цьому допоможе. If you've used Jest before and only need a quick reference on how it's installed, you need to go no further than the Getting Started guide.

Once you feel comfortable using Jest, proceed to the advanced Guides section. The new Snapshot Testing guide covers everything you need to know about creating and maintaining snapshot test cases.

Також, ми повністю змінили нашу документацію API. You can now find detailed information on all of Jest's Globals, matchers, and every flag supported by the jest CLI.

2016 в Jest

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

2016 рік був дуже важливим для JavaScript тестування з Jest. Перші пів року ми переписували Jest і створювали надійну основу для значного підвищення продуктивності та допомоги в тестуванні JavaScript коду. We flow-typed the entire codebase, built a ton of integration tests for Jest itself and adopted lerna to turn Jest from a framework into a Painless JavaScript Testing platform.

The newly created react-test-renderer finally enabled testing of react-native components. Through the jest-react-native preset (now merged directly into react-native) Jest now works out of the box for any React project and comes pre-configured in create-react-app and react-native projects. We integrated core pieces of Jest into react-native's packager and the completely new snapshot testing feature has since been used outside of Jest: It was integrated with React Storybook as “storyshots” and is being adopted by other test runners like ava.

Jest 16.0: Turbocharged CLI & Community Update

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

Пройшов місяць з моменту останнього великого релізу, а ми вже значно покращили роботу Jest. Цього великого релізу ми оновлюємо формат знімків, що може вимагати оновлення існуючих знімків при оновленні Jest. Ми не вносимо ці зміни бездумно та не розраховуємо робити їх часто, але вважаємо за необхідне час від часу покращувати формат.

Оновлений CLI

reporter

Jest 16 включає новий інтерфейс генератора звітів, який показує запущені тести, а також оновлюваний підсумок і смугу прогресу на основі розрахункового часу виконання з попередніх запусків. Ми також покращили вивід CLI для кращої роботи з різними кольоровими схемами. Якщо в попередньому виконанні в тестах були помилки, нині Jest буде запускати ці тести першими, щоб якомога швидше надати корисні дані користувачам.

Jest 15.0: Нові значення за замовчуванням для Jest

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

We spent the past year making Jest faster, easier to configure, added tons of features and built snapshot testing. Однак було дві сфери, в яких ми замало інвестували: вивід командного рядка та користувацький досвід. В Jest 15 ми радикально змінюємо фреймворк, щоб полегшити використання початківцями та досвідченими користувачами. Ми задоволені результатами наших інвестицій у Jest: ми можемо дуже швидко рухатись та покращувати фреймворк для Facebook і спільноти відкритого вихідного коду. Мета Jest - максимальне налаштування за замовчуванням, аби вимагати якомога менше необхідної конфігурації. We recently got a chance to explain our philosophy on a create-react-app issue.

The most important change to talk about is a set of new defaults. Якщо ви вже користуєтесь Jest, то, швидше за все, вам знадобиться оновити вашу конфігурацію для Jest 15. У більшості випадків налаштування спроститься та Jest надасть корисні повідомлення про помилки під час оновлення. Всі нові значення за замовчуванням можуть бути відключені відповідно до ваших потреб, але ми все ще вважаємо відключені функції критичними для Jest в певних ситуаціях, тож надалі довгостроково використовуватимемо та підтримуватимемо їх для Facebook. Our API documentation was also completely rewritten to reflect these changes. This pull request for React highlights some of the changes necessary for existing projects.

Jest 14.0: Тестування знімками React

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

Одним з принципів Jest є надання інтегрованого досвіду "нульової конфігурації". Ми хочемо зробити написання якісних тестів якомога більш безпроблемним. Ми помітили, що коли розробники забезпечені готовими інструментами, вони пишуть більше тестів, що в результаті призводить до стабільної бази коду.

Одне зі значних відкритих питань полягало в тому, як ефективно писати тести React. There are plenty of tools such as ReactTestUtils and enzyme. Обидва інструменти чудові й активно використовуються. Однак від розробників часто чулось, що вони витрачають більше часу на написання тесту, ніж самого компоненту. В результаті, багато людей взагалі припинили писати тести, що врешті-решт призвело до нестабільності. Розробники пояснили нам: все, чого вони хотіли - це переконатися, що їхні компоненти не змінюються несподівано.

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 надає реальні значення та описові інструкції великих змін. За допомогою цього, було виявлено багато крайніх випадків і помилок.