😺
Cypressで環境変数を指定する方法
独自の環境変数を設定する
Cypress では、実行時に環境変数を利用することができます。
例えば E2E テスト内で利用するユーザーを変えるために、ID/Password を外から渡したいなどの場面で役に立つかもしれません。
環境変数は cypress.json
に記述したり、実行時に指定することができます。以下は cypress.json
を利用した例です。
{
"baseUrl": "https://example.com",
"env": {
"id": "foo",
"password": "bar"
}
}
テスト内ではCypress.env
で値を取得できます。
const id: string = Cypress.env("id");
const password: string = Cypress.env("password");
環境変数を切り替える
テストを動かすとき、実行ごとに変数を渡したい場合があります。
例えばログイン用の ID/Password を変えたり、テスト対象の環境を変えるなどです。
環境変数を渡す方法はいくつかあります。
config file を渡す
cypress は起動時、特に何も指定しないとプロジェクトルートのcypress.json
が使用されます。
CLI 上で行うこともできますが、定型化するとなるとファイルを切り替えたいということもあるかと思います。その場合は-config-file
オプションを使用します。
例えば、以下のようなファイルを用意します。
- cypress.dev.json
{
"env": {
"id": "hoge",
"password": "fuga"
}
}
起動時に-config-file
でcypress.dev.json
を指定すると、id=hoge, password=fuga
が使用されます。
cypress run -config-file cypress.dev.json
実行時に直接指定する
何らかの理由で直接環境変数を利用したい場合があるかもしれません。その場合はenv
オプションで渡すことができます。
# 複数のenvをセットする場合はカンマ区切りにする
# envオプションはconfig fileの設定値に上書きされる仕様のため、特に指定しなければconfig fileの値が使用される
cypress run --env "id=hoge,password=fuga"
Discussion