Cypress と Typescript で起動して実行

テストを実行したときに、ランダムに爆発することがないようにするためです...

初めてCypressを見たとき、私はすぐに Cypress に夢中になりました。Cypress では、統合テスト (統合テストだけではありません) を作成できます。統合テストとは、ブラウザーを制御し、ブラウザー アプリケーション内をクリックして実際のユーザーのように動作するテストです。Cypress には、ProtractorやSeleniumを使用する場合に比べて、統合テストの作成がはるかに簡単になる魅力的な機能が多数あります。これらの機能は、ドキュメントを実際に確認して、自分で試してみてください。

とにかく、私が最初にテストを書き始めたときに遭遇した唯一の本当に残念なことは、Typescriptを使用できないことです。私は 1 年以上 Typescript を使用しており、プレーンな Javascript を使用したときには得られない型チェックとオートコンプリートに慣れています。そのため、Cypress を使用して最初のテストを書いたときは、テストを実行すると何かが爆発するかもしれないという奇妙な不安感がありました。

最近、 Cypress の型付けを発見し、Typescript でテストを実行できるようになりました。この短い投稿では、現在テストに使用しているセットアップについて説明します。

型付けを取得する

Typescript でテストを書き始める前に、まず型付けをインストールする必要があります。Cypress には多数のツールがバンドルされているため、それらを使用する場合は、それらの型付けもインストールする必要があります。

yarn add @types/{cypress,chai,chai-jquery}

☝️ Cypress バージョン 1.1.3以降、Cypress の型指定はデフォルトでライブラリにバンドルされているため、別途追加する必要はありません@types/cypress。

ビルドの設定

Cypress はまだ Typescript ファイルをサポートしていないため、テスト ファイルをビルドして、生成された Javascript ファイルを Cypress で実行するためのシンプルなビルド システムを設定する必要があります。WebpackやGulpなどのより複雑なソリューションを使用することもできますが、私は Typescript をインストールするとインストールされると呼ばれるTypescript コンパイラを使用するという非常にシンプルなソリューションに落ち着きました。それでは、今すぐそれを実行してください。tsc

yarn add typescript

tsc --watch --project test/tsconfig.json

オプションを使用してコンパイルするファイルを指定しinclude、オプションを使用して出力を指定compilerOptions.outDirします。ソース マップ ファイルを無効にしていることに注意してください。これは、Cypress がテストとしてそれらを実行しようとするためです。

サイプレスの設定

さて、これでテスト ファイルがコンパイルされました。最後に、Cypress にテスト ファイルを探す場所を指示します。そのためには、cypress.json設定ファイルを変更する必要があります。

オプションを使用して、コンパイルされたテストへのパスを渡しますintegrationFolder。これで完了です。

まとめ

これで、テストをコンパイルし、Cypress を使用して実行するためのセットアップが完了しました。セットアップ全体を実行するために NPM スクリプトを使用しており、その様子は次のようになります。あと 1 つの依存関係をインストールするだけです。

yarn add npm-run-all
    
      

この投稿を読んでいただきありがとうございます。気に入っていただけましたら、ぜひを押して、もっと素敵な特典を受け取るために私をフォローしてください。良い一日を!

提案された投稿

Next.js 13 でのクライアント デバイスの検出

Next.js 13 でのクライアント デバイスの検出

Web アプリが実行されている場所と、そのために使用されているデバイスの種類を知る必要がある場合があります。パソコンですか?それはモバイルデバイスですか?さらに、それがモバイルの場合、どの OS が使用されているかを確認して、ビューを調整し、アプリの応答性を高めたり、このデバイスまたは他のデバイスで動作しない一部の機能を削除したりできます。

forEach/map と async は両立しません

forEach/map と async は両立しません

場合によっては、forEach および map 関数で非同期関数を渡す傾向があります。例: 結果: 1 からのすべての数字。

関連記事

危険な会話

危険な会話

私たちがこの地球上で繁栄し続けたいのであれば、危険な会話をしなければなりません。私たちがこれまでやってきたこと、現在行っていること、そして現在継続して行う予定の(または計画している)ことに挑戦するものです。

ネットワークテレビツイッター

ネットワークテレビツイッター

古いものは再び新しくなり、以前はキラキラ輝いていたものがくすんで見えます。私は、JNCO ジーンズが 1990 年代後半の他のファッションとともにダウンタウンのクールな子供たちの間で復活したことについて話しているのではありません。

カウボーイの嘘

巨大企業はいかにしてアメリカ国民にひどい嘘を売ったのか

カウボーイの嘘

西のなだらかな丘陵地帯では、太陽の最初の光が平原の曇った草を照らす、まばゆいばかりの金色の朝です。真っ黒で巨大な穏やかなアンガス牛の群れが日の出を背景にシルエットを描き、誰もがよく知っている場所へ人里離れた道を進んでいます。朝食バー。

ジャーナル・アウトバート

ジャーナル・アウトバート

日記を開く: 1 日 1 枚の写真。私はいつも物語に魅了されてきました。