【发布时间】:2021-01-22 14:41:01
【问题描述】:
我将 TypeScript 和 Cypress 框架用于自动化目的。为了从 SQL Server 中检索数据,我尝试使用 Cypress sql server,但这仅在 JavaScript 中可用,因为我使用 JavaScript MSSQL 库来检索 plugin/index.js 下的值,然后在所需的 TypeScript 中调用该函数文件。但它在检索过程中将错误作为 undefined value 抛出,即使我处理了承诺。但是查询输出在控制台中打印成功(附下图)
我尝试了与 MYSQL 相同的方法,但在 MSSQL 中它失败了。是什么原因,我在这里想念什么吗?我在下面分享了试验和信息:
plugin/index.js
var mssql = require('mssql');
module.exports = (on, config) => {
on('task', {
'createMSSQLConnection'(query) {
var res = odsQueryDB(query)
console.log(res)
return res
}
});
function odsQueryDB(query) {
return new Promise((resolve, reject) => {
mssql.connect(db.ods,function(err){
if(err){ console.log(err) }
var sqlServerRequest = new mssql.Request();
sqlServerRequest.query(query, (error, recordset) => {
if(error)
return reject(error)
mssql.close();
console.log(recordset[0])
return resolve(recordset)
})
})
})
}
};
database.ts
class DBConnectionManager {
getODSValueFromDB(){
const query = `SELECT TOP(1) FIELD FROM TABLE`;
cy.task('createMSSQLConnection',query).then(function (recordset:any) {
if(recordset.length<1){
throw new Error("There are no values in the results. Check the database data!")
}
let rec:any = recordset
const results:any = Object.values(rec[0])
cy.log(''+results[0])
})
}
控制台输出:
【问题讨论】:
标签: javascript sql-server database typescript cypress