无法在 Chai.js 中将期望与 Nightwatch 一起使用

Cannot use expectation in Chai.js with Nightwatch

我用 Nightwatch 构建简单的 e2e 测试。这个简单的e2e测试顺利通过
接下来,我构建第二个测试以使用 Chai.js / Mocha.js。但是这个测试引发了异常。

// First(successfully passed)
module.exports = {
  'increment counter': browser => {
    browser
      .url(process.env.VUE_DEV_SERVER_URL)
      .click("button#plus-btn")
      .assert.containsText('h1', '1')
      .end()
  },
  "decrement counter": browser => {
    browser
      .url(process.env.VUE_DEV_SERVER_URL)
      .click("button#minus-btn")
      .assert.containsText('h1', '-1')
      .end()
  }
}
// Second
describe('counter testing', () => {

  describe('press plus button', () => {

    it('increments counter', (browser) => {
      browser
        .url(process.env.VUE_DEV_SERVER_URL)
        .click("button#plus-btn")
        .expect.element('h1').text.to.equal('1')
        .end()
    })
  })

  describe('press minus button', () => {

    it('decrements counter', (browser) => {
      browser
        .url(process.env.VUE_DEV_SERVER_URL)
        .click("button#minus-btn")
        .expect.element('h1').text.to.equal('-1')
        .end()
    })
  })
})

异常消息

TypeError: browser.url(...).click(...).expect.element(...).text.to.equal(...).end is not a function

接下来我该做什么?

根据 docs,在使用 expect 进行断言时,您应该以不同的方式调用 end。我认为这是因为 expect 方式基于 chai。将您的测试更改为这样会起作用

it("increments counter", browser => {
  browser
    .url(process.env.VUE_DEV_SERVER_URL)
    .click("button#plus-btn")
    .expect.element("h1")
    .text.to.equal("1");
  // See how end is called differently
  browser.end();
});