以下是我的代码,请查看。
var mysql = require('promise-mysql');
var connection;
mysql.createConnection({host:'Ip', user:'qa', password: '******'}).then(function(conn){
connection = conn;
return connection.query(firstInput);
})
.then(function(rows){
console.log(rows);
})
.then(function(){
console.log("End of DB Con.");
return connection.end();
})
.catch(function(error){
//logs out the error
console.log(error);
});
一旦我尝试执行不同Jasmine测试的代码,一切正常,因为它从DB获取记录但是当执行最后一个jasmine测试时,它保留了在最后一次测试中执行的第二个查询的记录。这是确切的问题!
=============================================== ========================== 添加了与此问题相关的更多详细信息:
关注我从DB获取记录的代码:
1)与DB连接和查询相关的第一个功能:
function dbMySqlInteraction (query, callback) {
Promise = require('bluebird');
var mysql = Promise.promisifyAll(require('mysql'));
var connection = mysql.createConnection({host:'ip', user:'qa',
password:'*********'});
connection.query(query, function (err, results, fields) {
callback(results);
});
2)下面提到的代码将打印从db获取的记录,然后打印PHPSESSID比较:
dbMySqlInteraction(query, function(cBT){
var lastRow = cBT[cBT.length-1];
////////////////// Print Stats ////////////////////////////////
//console.log(lastRow.stats_datetime);
console.log('Stats recorded/fetched from DB as: ');
allure.createStep('Stats recorded/fetched from DB as: ', function(){
for (var key in lastRow) {
if (lastRow.hasOwnProperty(key)) {
allure.createStep(key +': ' + lastRow[key], function(){})();
console.log(key +': ' + lastRow[key]);
}
}
})();
browser.sleep(2000);
////////////////// PHPSESSID Comparison ///////////////////////////////
browser.manage().getCookie("PHPSESSID").then(function(cookies) {
console.log('Got Browser PHPSESSID As: ', cookies.value);
allure.createStep('Got Browser PHPSESSID As: ' + cookies.value, function(
{})();
var dBSessionID = lastRow.session_id;
console.log("DB Session ID: " + dBSessionID);
allure.createStep("DB Session ID: " + dBSessionID, function(){})();
console.log('Stats recorded time: ' + lastRow.stats_datetime);
allure.createStep('Stats recorded time: ' + lastRow.stats_datetime,
function(){})();
expect(cookies.value).toEqual(dBSessionID);
});
});
//connection.end();
browser.sleep(2000);
我需要执行上面提到的所有代码作为每个茉莉花测试的一部分,但有时从早期的Jasmine测试获取的“dBSessionID”将保留在即将到来的茉莉花测试中,根据断言它将被标记为失败,因为不等于浏览器的PHPSESSID。