メインコンテンツへスキップ

Jest 23: 🔥 超高速で楽しいテスト体験

· 1分で読める
Ricky Hanlon
Ricky Hanlon
非公式ベータ版翻訳

このページは PageTurner AI で翻訳されました(ベータ版)。プロジェクト公式の承認はありません。 エラーを見つけましたか? 問題を報告 →

本日、Jest史上最大のメジャーリリースとなるJest 23の公開を発表できることを大変嬉しく思います!100名以上のコントリビューターと共に、数多くの新機能とバグ修正を提供しました。JavaScriptテストを楽しいものにするために協力してくださったコミュニティの皆様に感謝します。

また、BabelwebpackをJestコミュニティへ歓迎いたします!MochaからJest 23 Betaに移行したwebpackは、テストスイート全体の実行時間を13分以上から2分20秒へ6倍も短縮することに成功しました。#blazingmeansgood

以下にJest 23の主なハイライトと破壊的変更を紹介します。

Jest 22: 機能改善とカスタムランナー

· 1分で読める
Simen Bekkhus
Simen Bekkhus
非公式ベータ版翻訳

このページは PageTurner AI で翻訳されました(ベータ版)。プロジェクト公式の承認はありません。 エラーを見つけましたか? 問題を報告 →

本日、Jestの新たなメジャーバージョンを発表します。このリリースではJestのほぼすべての部分を改良し、より堅牢なテスト基盤を提供します。Jestコミュニティと協力して多岐にわたる変更を加え、皆様がJestからより多くの価値を引き出せるようにしました。また、カスタムランナー機能を実験段階から正式リリースへ移行するとともに、複数プロセス間での作業並列化を可能にする新パッケージjest-workerを追加しました。主要なハイライトを以下にまとめましたが、変更履歴(いつもながら膨大です)も必ずご確認ください。

Jest 20: 💖 テストが楽しくなる & 🏃🏽 マルチプロジェクトランナー

· 1分で読める
非公式ベータ版翻訳

このページは PageTurner AI で翻訳されました(ベータ版)。プロジェクト公式の承認はありません。 エラーを見つけましたか? 問題を報告 →

数ヶ月前に発表したJest 19は主要な新機能を備えた当時最大のリリースでしたが、今日公開するJest 20は前バージョンの2倍の変更を伴い、テストランナーの完全な書き換えを実現し、新たなテストAPIを追加しています。この新リリースはプロジェクトのカスタマイズと設定に新たな次元をもたらすと同時に、アップグレードを驚くほど容易にします。「苦痛のないJavaScriptテスト」を超えて、Jestは今や楽しいJavaScriptテスト体験を提供していると確信しています。主要な新機能と変更点を深掘りしてみましょう:

マルチプロジェクトランナーと設定の大改革

これまでJestは一度に1つのプロジェクトでしか動作できませんでした。これは独自のセットアップと設定を持つ複数の小さなプロジェクトを扱う場合、しばしば煩雑でした。Jest 20ではテストランナーを完全に書き直し、単一のJestインスタンス内で複数のプロジェクトを同時に実行できるようになりました。例えばReactフロントエンドとNode.jsバックエンドを同時に扱う場合などです。こちらはJestがReactRelayYarn、そしてJest自身のテストを同時に実行する様子です:

マルチランナー

🃏 Jest 19: 没入型ウォッチモードとテストプラットフォームの改善

· 1分で読める
Rogelio Guzman
Rogelio Guzman
非公式ベータ版翻訳

このページは PageTurner AI で翻訳されました(ベータ版)。プロジェクト公式の承認はありません。 エラーを見つけましたか? 問題を報告 →

本日、Jestテストプラットフォームのバージョン19をリリースします。これまでで最大のJestリリースであり、過去2か月にわたって構築してきたものをお見せできることを大変嬉しく思います:

没入型ウォッチモード

ウォッチモードを完全に書き直し、即時性と拡張性を高めました。その結果、まさに没入型と呼べる体験が実現しました:ファイル変更後にテストが即座に再実行され、適切なテストを簡単に選択できるようになりました。

優れた開発者体験を提供するために

· 1分で読める
Héctor Ramos
Héctor Ramos
非公式ベータ版翻訳

このページは PageTurner AI で翻訳されました(ベータ版)。プロジェクト公式の承認はありません。 エラーを見つけましたか? 問題を報告 →

私たちは、優れたドキュメントが開発者体験の向上に不可欠だと強く信じています。ドキュメントは明確で簡潔であり、新規ユーザーからベテランまで役立つものであるべきです。この考えのもと、最近Jestウェブサイトの全面刷新に取り組みました。

ドキュメントの改善

ドキュメントを訪れてすぐに気づく変更点のひとつが、更新されたサイドバーです。ドキュメントは現在、Jestの紹介、機能詳細ガイド、包括的なAPIリファレンスの3つの主要エリアに分かれています。

イントロダクションセクションでは、Jestのインストールから最初のテストケース作成、マッチャーの使用、非同期コードのテストまでをガイドします。Jestが初めての方や復習が必要な方は、これらのドキュメントで素早く理解を深められます。以前Jestを使用したことがありインストール方法だけ確認したい場合は、入門ガイドをご覧ください。

Jestの使用に慣れたら、高度なガイドセクションに進みましょう。新たに追加されたスナップショットテストガイドでは、スナップショットテストケースの作成とメンテナンスに必要なすべてを網羅しています。

最後に、APIリファレンスドキュメントを完全に刷新しました。Jestのグローバルオブジェクトマッチャーjest CLIでサポートされるすべてのフラグに関する詳細情報をまとめています。

Jestにおける2016年

· 1分で読める
非公式ベータ版翻訳

このページは PageTurner AI で翻訳されました(ベータ版)。プロジェクト公式の承認はありません。 エラーを見つけましたか? 問題を報告 →

2016年はJavaScriptテストにおいてJestにとって大きな年となりました。この年の前半6ヶ月でJestを書き直し、パフォーマンスとJavaScriptコードテストの開発者体験を大幅に改善する堅固な基盤を構築しました。コードベース全体をFlowで型付けし、Jest自体のための数多くの統合テストを構築し、lernaを採用してJestをフレームワークからPainless JavaScript Testingプラットフォームへと進化させました。

新たに作成されたreact-test-rendererにより、ついにreact-nativeコンポーネントのテストが可能になりました。jest-react-nativeプリセット(現在はreact-nativeに直接統合)を通じて、JestはどのReactプロジェクトでもすぐに使えるようになり、create-react-appreact-nativeプロジェクトでは最初から設定済みです。Jestのコア部分をreact-nativeのパッケージャに統合し、まったく新しいスナップショットテスト機能はJestの外部でも利用されるようになりました:React Storybookでは"storyshots"として統合され、avaのような他のテストランナーでも採用が進んでいます。

Jest 16.0: 高速化されたCLIとコミュニティアップデート

· 1分で読める
非公式ベータ版翻訳

このページは PageTurner AI で翻訳されました(ベータ版)。プロジェクト公式の承認はありません。 エラーを見つけましたか? 問題を報告 →

前回のメジャーリリースから1ヶ月が経ち、それ以来Jestに大幅な改良を加えてきました。今回のメジャーリリースでは、使用しているスナップショット形式を更新するため、Jestをアップグレードする際にはスナップショットの更新が必要になる可能性があります。このような変更は軽々しく行うものではなく、頻繁に発生することもないと考えていますが、フォーマットを随時改善していくことは必要だと判断しました。

強化されたCLI

reporter

Jest 16では、実行中のテストを表示する新しいレポーターインターフェースを導入しました。これにはライブサマリーと、過去のテスト実行から推定した実行時間に基づくプログレスバーも含まれます。また、さまざまなカラースキームでの表示を改善し、CLI出力の見やすさを向上させました。前回の実行で失敗したテストがある場合、Jestは常にそれらのテストを最初に実行し、ユーザーに迅速に有用な情報を提供します。

Jest 15.0:Jestの新たなデフォルト設定

· 1分で読める
非公式ベータ版翻訳

このページは PageTurner AI で翻訳されました(ベータ版)。プロジェクト公式の承認はありません。 エラーを見つけましたか? 問題を報告 →

この1年間、私たちはJestを高速化し、設定を簡素化し、数多くの機能を追加し、スナップショットテストを構築してきました。しかし、CLI出力とユーザー体験という2つの領域にはほとんど注力してきませんでした。Jest 15では、フレームワークを根本的に変革し、初心者から上級ユーザーまでがより簡単に利用できるようにします。Jestへの投資が実を結び、Facebookとオープンソースコミュニティのために高速でフレームワークを改善できることを嬉しく思います。Jestの目標は「すぐに使える機能を備えること」と「最小限の設定で動作すること」です。この設計思想については、最近create-react-appのissueで説明する機会がありました。

最も重要な変更点は一連の新デフォルト設定です。既存のJestユーザーはJest 15への設定更新がほぼ必須となります。多くの場合、設定は簡素化され、アップグレード中にJestが有用なエラーメッセージを提供します。新しいデフォルトはすべて無効化できますが、無効化された機能も特定の状況では重要であり、Facebookでは長期的に使用・サポートを継続します。APIドキュメントもこれらの変更を反映して完全に書き直されました。Reactのこのプルリクエストには既存プロジェクトで必要な変更の一部が示されています。

Jest 14.0: Reactツリースナップショットテスト

· 1分で読める
非公式ベータ版翻訳

このページは PageTurner AI で翻訳されました(ベータ版)。プロジェクト公式の承認はありません。 エラーを見つけましたか? 問題を報告 →

Jestの哲学の一つは、統合された「ゼロ設定」体験を提供することです。有用なテストを書く際の摩擦を可能な限り減らし、エンジニアがすぐに使えるツールを提供することで、より多くのテストが書かれ、結果として安定した健全なコードベースが生まれることを目指しています。

大きな未解決課題の一つは、効率的にReactテストを書く方法でした。ReactTestUtilsenzymeなど多くのツールが存在します。これらは優れたツールで広く使われています。しかしエンジニアからは「コンポーネント自体よりもテストを書くのに時間がかかる」という声が頻繁に寄せられました。その結果、多くの人がテスト作成を完全に止めてしまい、最終的に不安定なコードにつながりました。エンジニアたちが本当に求めていたのは、コンポーネントが予期せず変更されないことを保証する方法でした。

Jest 13.0: Flow と REPL

· 1分で読める
非公式ベータ版翻訳

このページは PageTurner AI で翻訳されました(ベータ版)。プロジェクト公式の承認はありません。 エラーを見つけましたか? 問題を報告 →

本日、Jestの次期メジャーリリースをお知らせできることを嬉しく思います。今回の大幅な変更は、皆様とFacebookのJavaScriptテストインフラ全体に恩恵をもたらすものです。最も重要な点として、先日Facebookで開催されたJestハッカソンで、Jestの全コードに静的型付けを追加しました。15名のエンジニアが昼夜を問わず作業し、Flowの型をJestに追加するとともに新機能を実装しました。Flow型の導入には二つの目的があります。第一に、私たちはコードは読まれるために書かれると信じています。ほとんどの場合、コードは一度だけ書かれますが、その後何年も何十人もの人々に読まれます。プロジェクトに静的型を追加することでコードのドキュメント化が促進され、Jestのアーキテクチャの一部を説明しやすくなります。第二に、静的型を追加することでメンテナンスが容易になり、Jestの一部を壊れる恐れなく自信を持ってリファクタリングできるようになります。

FlowプロジェクトはFacebook内で大きく進化し、多くのフレームワークとほぼ全てのプロダクトコードで採用されています。採用は驚くほど並列化が可能で、コードベースの十分な部分が適切に型付けされるまでファイル単位で進めることができます。そうするとFlowは真の価値を提供し、大規模な変更を導くのに役立ちます。このプロセスを通じて、多くの細かいエッジケースやバグが発見されました。