Nightwatch自定义命令回调

四眼

我试图在守夜中创建一个自定义命令,该命令在Postgres数据库上运行查询并返回结果。查询运行得很好,并将结果输出到控制台,但是测试的执行停止。我不了解回调的工作方式。如何修复此自定义命令?

exports.command = function(sql, callback) {
  var self = this;
  var pg = require('pg');
  var conString = self.globals.testinfo.connectionString;
  var db = new pg.Client(conString);
  db.connect(function(err) {
    if(err) {
      console.error('could not connect', err);
    } 
    else {
      db.query(sql, function(err, result) {
        if(err) {
          console.log('error running query', err);
        } 
        else {
          console.log(result.rows.length);
          db.end();
        }
      });
    }
  }),
  function(result) {
    if (typeof callback === 'function') {
      callback.call(self, result);
    }
  }  
  return this;
};
四眼

我必须将数据库连接包装在perform命令中才能正常工作。我不确定这是否是处理回调的最佳方法,但是它可以工作。这是自定义命令的更新版本:

exports.command = function(sql,callback) {
  var self = this;
  var pg = require('pg');
  var cs = self.globals.testinfo.connectionString;
  self.perform(function(self,done) {
    pg.connect(cs,function(err,db,done) {
      if(err) {
        return console.error(err);
      }  
      db.query(sql, function(err,result) {
        done();
        if(err) {
          return console.error(err);
        } 
        console.log(result.rows.length);
        callback(result.rows[0]);
      });
    });
    pg.end();
    done();
  });
};

这是我在测试中调用自定义命令的方式:

browser.myCustomCommand('select * from table limit 1;', function(row) {
  browser.assert.deepEqual(row.column,'some value');
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

自定义代表回调

来自分类Dev

JavaScript:自定义回调函数

来自分类Dev

提供自定义组件的回调

来自分类Dev

Javascript 自定义回调函数

来自分类Dev

在ruby方法上定义自定义回调

来自分类Dev

在ruby方法上定义自定义回调

来自分类Dev

如何从回调访问Polymer自定义元素

来自分类Dev

自定义事件与ReactJS中的回调

来自分类Dev

Passportjs自定义回调-'密码错误'消息

来自分类Dev

如何创建执行回调的树枝自定义标签?

来自分类Dev

Express.js中的自定义回调获取

来自分类Dev

自定义javascript函数/ jQuery回调的正确语法

来自分类Dev

在翻新回调中接收自定义参数

来自分类Dev

NSMutableSet与自定义isEqual:和哈希回调

来自分类Dev

通过自定义回调函数的Woocommerce订单

来自分类Dev

自定义挂钩/回调/宏方法

来自分类Dev

在回调中反应自定义钩子

来自分类Dev

Tensorflow回调作为CTC的自定义指标

来自分类Dev

在回调函数中使用自定义钩子

来自分类Dev

Express.js中的自定义回调获取

来自分类Dev

Ajax可自定义的错误回调函数

来自分类Dev

jQuery函数自定义加扰回调

来自分类Dev

password.js自定义回调200

来自分类Dev

如何从回调访问Polymer自定义元素

来自分类Dev

CakePHP 3:如何创建自定义模型回调?

来自分类Dev

使用 Django Rest Framework 的自定义 JSON 回调

来自分类Dev

自定义元素内的 Google Auth 回调

来自分类Dev

Quickblox:自定义模块-自定义回调函数,而不是默认的“ completedWithResult”

来自分类Dev

在构造函数中定义自定义元素的生命周期回调