34
35

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2015-10-18

はじめに

本投稿は、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のジェネレーター構文を採用

  • mochaを使う場合は、co-mocha(または将来的に、mocha-generators)が必須になる
  • mochaを使う場合は、mocha-generatorsを使う

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の変更だけをするバージョンがあっても良かったのかなと。

34
35
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
34
35

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?