Automated tests 无法使用mocha运行nightwatch.js测试;确保调用了done()回调";

Automated tests 无法使用mocha运行nightwatch.js测试;确保调用了done()回调";,automated-tests,mocha.js,ui-automation,nightwatch.js,Automated Tests,Mocha.js,Ui Automation,Nightwatch.js,我在web上找到的几乎每一个例子都没有很好地解释mocha应该如何与nightwatchJS一起实现和使用 无论我做什么,我都无法避免那个错误消息,即使我按照 我能做的唯一一件事就是至少打开google chrome浏览器,就是这样 下面是我试图运行的代码 var nightwatch=require('nightwatch'); 描述('Google',函数(){ var client=nightwatch.initClient({ //从nightwatch.json传递选项 //sele

我在web上找到的几乎每一个例子都没有很好地解释mocha应该如何与nightwatchJS一起实现和使用

无论我做什么,我都无法避免那个错误消息,即使我按照 我能做的唯一一件事就是至少打开google chrome浏览器,就是这样

下面是我试图运行的代码

var nightwatch=require('nightwatch');
描述('Google',函数(){
var client=nightwatch.initClient({
//从nightwatch.json传递选项
//selenium日志;如果希望在控制台中看到它们,请将其更改为true
沉默:错,
所需能力:{
浏览器名称:“chrome”,
javascriptEnabled:true,
acceptSslCerts:对
}
});
var browser=client.api();
//摩卡咖啡超时
这是超时(15000);
它('Demo test Google',函数(完成){
浏览器
.url('http://www.google.com')
.waitForElementVisible('body',1000)
.setValue('input[type=text],'nightwatch')
.waitForElementVisible('button[name=btnG]',1000)
。单击('按钮[name=btnG]')
.暂停(1000)
.assert.containsText(“#main”,“夜间值班”)
.end();
客户端启动(完成);
});

});尝试调用链末尾的
done()
回调。我对
client.start()
的速度还不是很快,但我很确定您希望在链到达终点时发出测试完成的信号

var nightwatch=require('nightwatch');
描述('Google',函数(){
var client=nightwatch.initClient({
//从nightwatch.json传递选项
//selenium日志;如果希望在控制台中看到它们,请将其更改为true
沉默:错,
所需能力:{
浏览器名称:“chrome”,
javascriptEnabled:true,
acceptSslCerts:对
}
});
var browser=client.api();
//摩卡咖啡超时
这是超时(15000);
它('Demo test Google',函数(完成){
浏览器
.url('http://www.google.com')
.waitForElementVisible('body',1000)
.setValue('input[type=text],'nightwatch')
.waitForElementVisible('button[name=btnG]',1000)
。单击('按钮[name=btnG]')
.暂停(1000)
.assert.containsText(“#main”,“夜间值班”)
.结束(完成);
client.start();
});

});原始问题指出,关于如何使用摩卡设置夜视,没有很好的文档。这个周末,我自己也发现了这种情况,因为我想用摩卡来设置我的夜间值班测试。 通过执行以下操作,我可以在不看到已完成回调错误的情况下设置夜间监视测试:

我使用了nightwatch.conf.js,但我相信您也可以在nightwatch.json中执行以下操作:

module.exports = {
  src_folders : ["test"],
  test_runner: {
    type: 'mocha',
    options: {
      ui: 'bdd',
      reporter: 'spec'
    }
  },
  ...
}
{
  "name": "nightwatch-mocha",
  "directories": {
    "test": "test"
  },
  "scripts": {
    "nightwatch": "nightwatch -c ./nightwatch.conf.js"
  },
  "devDependencies": {
    "chromedriver": "^73.0.0",
    "mocha": "^6.1.4",
    "nightwatch": "^1.0.19"
  }
}

简单对吧? 这允许摩卡运行您的夜视测试。 更简单、更友好的语法

以下是我的软件包的相关部分。json

module.exports = {
  src_folders : ["test"],
  test_runner: {
    type: 'mocha',
    options: {
      ui: 'bdd',
      reporter: 'spec'
    }
  },
  ...
}
{
  "name": "nightwatch-mocha",
  "directories": {
    "test": "test"
  },
  "scripts": {
    "nightwatch": "nightwatch -c ./nightwatch.conf.js"
  },
  "devDependencies": {
    "chromedriver": "^73.0.0",
    "mocha": "^6.1.4",
    "nightwatch": "^1.0.19"
  }
}

我安装了chromedriver,因此可以通过chrome运行测试

还安装了摩卡咖啡和夜视

我在脚本对象中创建了一个名为夜视的脚本

当我位于项目根目录下时,当我从命令行运行
npm run nightwatch
时,它将使用mocha运行nightwatch

此外,使用nightwatch.json或nightwatch.conf.js可以将该配置排除在测试之外—您不希望在编写新测试套件时必须初始化该配置,因为您可以一次性完成该配置