Tôi đã phải bọc kết nối cơ sở dữ liệu trong một lệnh thực hiện để điều này hoạt động. Tôi không chắc liệu đây có phải là cách tốt nhất để xử lý lệnh gọi lại hay không, nhưng nó hoạt động. Đây là phiên bản cập nhật của lệnh tùy chỉnh:
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();
});
};
Đây là cách tôi gọi lệnh tùy chỉnh trong thử nghiệm:
browser.myCustomCommand('select * from table limit 1;', function(row) {
browser.assert.deepEqual(row.column,'some value');
});