これを機能させるには、データベース接続を実行コマンドでラップする必要がありました。これがコールバックを処理するための最良の方法であるかどうかはわかりませんが、機能します。カスタムコマンドの更新バージョンは次のとおりです。
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');
});