JavaScript
mocha
Nightmare
Electron

Nightmare(v2) + mocha ベースに、ES6でE2Eテストを書く

More than 3 years have passed since last update.


はじめに

本投稿は、Nightmare v2を前提とした内容になっています。

v1については、こちらの投稿を参照ください。


Nightmare v2になって


いつからv2になったのか

$ npm info nightmare

{ name: 'nightmare',
description: 'A high-level browser automation library.',
'dist-tags': { latest: '2.0.7' },
versions:
[ '0.0.1',

...(( 中略 ))...

time:
{ modified: '2015-10-01T18:28:53.265Z',

...(( 中略 ))...

'2.0.0': '2015-09-13T08:14:23.986Z',

どうやら、2015-09-13にv2.0.0がnpm上でリリースされたようです。


v2になって何が変わったのか


ブラウザがphantomjsからelectronに変更


  • 実行速度の大幅改善が見込まれる

  • electronがデスクトップアプリとして動作するので、実行中にウィンドウを見ることができる


ES6のジェネレーター構文を採用


coffee-scriptは現実問題使えない


APIの変更


  • インスタンスの生成が、new Nightmare()ではなく、Nightmare()

  • evaluate関数の値の受け渡し方が変更

  • end関数の導入


現状の問題点(v2.0.7時点)(v2.1.4で解消)


Example

githubにあげていたexampleをv2に対応させました。

https://github.com/imunew/nightmare-example


おわりに

v2で破壊的変更が加えられたnightmareですが、実行速度は大幅に改善されています。(v1がphantomjsのために遅過ぎたというのはありますが)

ただ、ES6構文が取り込まれたことで、コードの書き直しが発生するなど、利用する側の負担も正直、小さくはありません。

構文は変えずに、phantomjs→electronの変更だけをするバージョンがあっても良かったのかなと。