为什么 nightmare.js 示例不起作用?

Why are the nightmare.js examples not working?

var Nightmare = require('nightmare');
var expect = require('chai').expect; // jshint ignore:line 

describe('test yahoo search results', function() {
  it('should find the nightmare github link first', function*() {
    var nightmare = Nightmare()
    var breadcrumb = yield nightmare
      .goto('http://yahoo.com')
      .type('input[title="Search"]', 'github nightmare')
      .click('.searchsubmit')
      .wait('.url.breadcrumb')
      .evaluate(function () {
        return document.querySelector('.url.breadcrumb').innerText;
      });
    expect(breadcrumb).to.equal('github.com');
  });
});

为什么这个测试总是评估为真?

即使我更改比较值,此测试的计算结果仍为真。如果我在 expect 之前添加一个 console.log,它不会打印,这让我觉得测试永远不会被评估并且 chai 的空响应为真。我是运行ning node v4.2.2,最新版nightmare和expect。我 运行 使用 mocha index.js(此文件的名称)从终端进行测试。

function*yield 是一个名为 Generators.

的 ES2015 特性

README 中的示例后有一个附加注释:

Please note that the examples are using the mocha-generators package for Mocha, which enables the support for generators.

因此您需要安装包并将其添加到您的代码中:

require('mocha-generators').install();