TestCafeのオプションをファイルで管理
こんにちは。asatoです。
TestCafeのオプションをコマンドで毎回書いていたのですが、Configuration fileなんてものがあったのか...
ファイルの適用
Configuration fileは.testcaferc.js
または.testcaferc.json
の名前でワーキングディレクトリに置いておくと、testcafe実行時に自動的に読み込んでくれます。
--config-file
オプションを使えば、別の名前や別の場所に置いてあるファイルでも適用されます。
ファイルの中身
この記事では.testcaferc.js
を前提とします。
module.exports = { // options }
ベースはこちらで、options
のところに必要なオプションを定義していきます。
おすすめオプション
オプションいっぱいあるんですが、現状こんな感じの定義をしてます。
module.exports = { browsers: "chrome:headless", screenshots: { takeOnFails: true, fullPage: true, thumbnails: false, }, concurrency: 3, stopOnFirstFail: true, cache: true, };
browsers
テストを実行するブラウザを指定します。複数のブラウザを設定したい場合は配列で指定します。
browsers: ["ie", "firefox", "chrome"]
詳しくは公式!
screenshots.takeOnFails
テストが失敗したときにスクリーンショットを自動的に撮影するかどうかです。デフォルトはfalse
。
失敗の原因を調査するためにtrue
にしてます。
screenshots.fullPage
スクリーンショットをページ全体で撮影するかどうかです。デフォルトはfalse
。
screenshots.thumbnails
スクリーンショットのサムネイルを作成するかどうかです。デフォルトはtrue
。
ただ僕は使っていないのでfalse
に。ツールやサービスと連携して使っているとサムネイルが欲しくなったりするのかな?
concurrency
同時実行数です。ブラウザを何個起動するかですね。
この数を大きくすればテスト時間も短くなります。ただしリソースも必要になるので、環境に合わせていい感じの数に調整する必要があります。
stopOnFirstFail
テストが1つ失敗したタイミングで後続のテストを中断するかどうかです。デフォルトはfalse
、つまり継続のテストもすべて実行するです。
僕は1つ失敗したらすぐに改修するってやり方が好きなのでtrue
にしてます。CIで回すときも1つでも失敗したらどうせマージされないので、フィードバックをすぐに獲得するためにも、実行時間を抑えておくためにも、true
にしてます。
cache
スタイルシートやスクリプトをキャッシュするかどうかです。デフォルトはfalse
です。
テスト実行時間短縮のため、true
にしてます。
まとめ
TestCafeのオプションをコンフィグファイルで管理してみました。 かなりいろいろと設定できますねー。
自分たちの開発スタイルに合わせて調整していきたいですね。