Cypress を触ってみる
参考
インストール
npm install cypress
起動
npx cypress open
初期設定
ウィンドウが立ち上がるので下記の通り設定する。
- E2E Testing をクリックする。
- Continue をクリックする。
- Chrome をクリックする。
- Start E2E Testing in Chrome をクリックする。
階層
デフォルトでは下記のような階層が出来上がる。
.
├── cypress
│ ├── fixtures #(テストデータを入れるディレクトリ)
│ │ └── example.json
│ └── support #(cypressにカスタムコマンドを追加するディレクトリ)
│ ├── commands.js
│ └── e2e.js
└── cypress.config.js
テスト対象のファイルを作成
テスト対象のファイルを作成します。
.
├── cypress
│ ├── fixtures
│ │ └── example.json
│ └── support
│ ├── commands.js
│ └── e2e.js
├── cypress.config.js
└── hoge.html # これ
hoge.html の中身は下記の通り。
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>サンプル</title>
</head>
<body>
<h1> 登録フォーム </h1>
メールアドレス
<input type="email" id="input-email"/>
<p>権限
<select id="select-role">
<option value="一般">一般</option>
<option value="管理者">管理者</option>
</select></p>
<input type="button" value="登録" id="submit" onclick="Submit()"/>
<p id='result-email'>未記入</p>
<p id='result-role'>未記入</p>
<script>
function Submit() {
document.getElementById('result-email').textContent =
document.getElementById("input-email").value;
document.getElementById('result-role').textContent =
document.getElementById("select-role").value;
}
</script>
</body>
</html>
テストコードを書くファイルを作成
テストコードを書くファイルを作成します。
ディレクトリ構成やファイル名は自由ですが、cypres のサンプルだと e2e 配下に作るみたいなのでとりあえず従います。
.
├── cypress
│ ├── e2e
│ │ └── spec.cy.js # これ
│ ├── fixtures
│ │ └── example.json
│ └── support
│ ├── commands.js
│ └── e2e.js
├── cypress.config.js
└── hoge.html
spec.cy.js の中身は下記の通り。
describe('template spec', () => {
it('passes', () => {
cy.visit('hoge.html') // テスト対象のファイルパス指定。(URL指定も可能。)
cy.get('#input-email').type('dummy@email.com') // 入力。
cy.get('#select-role').select('管理者') // 選択。
cy.get('#submit').click() // ボタン押下。
cy.get('#result-email').should('have.text', 'dummy@email.com') // 出力値テスト。
cy.get('#result-role').should('have.text', '管理者')// 出力値テスト。
})
})
実行
GUIで実行する
- Cypress のウィンドウにもどる。
- サイドバーの「Spec」をクリックする。
- 「cypress/e2e」内の[spec.cy.js]をクリックする。
CUIで実行する
全てのテストを実行する。
npx cypress run
ファイルを指定して一部のテストを実行する。
npx cypress run -s ./cypress/e2e/spec.cy.js
動画を確認する
CUIでテストを実行すると、動画を撮って保存してくれるみたいです。
.
├── cypress
│ ├── e2e
│ │ └── spec.cy.js
│ ├── fixtures
│ │ └── example.json
│ ├── support
│ │ ├── commands.js
│ │ └── e2e.js
│ └── videos
│ └── spec.cy.js.mp4 # これ
├── cypress.config.js
└── hoge.html
オプションで動画を残さないようにもできるようです。
npx cypress run -s ./cypress/e2e/spec.cy.js --config video=false
ディスカッション
コメント一覧
まだ、コメントがありません