Jag var tvungen att linda in databasanslutningen i ett utför kommando för att få detta att fungera. Jag är inte säker på om detta är det bästa sättet att hantera återuppringningen, men det fungerar. Här är den uppdaterade versionen av det anpassade kommandot:
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();
});
};
Så här anropar jag det anpassade kommandot i testet:
browser.myCustomCommand('select * from table limit 1;', function(row) {
browser.assert.deepEqual(row.column,'some value');
});