Testcafe-如何从Testcafe中的主类调用excel数据驱动类



获取"无法读取";forEach’未定义。我已经按照你说的执行了。但是,我还是会犯错误。请给出这个的解决方案

//独立类中的数据驱动脚本

import xlsx from "node-xlsx"
// read logic of excel
export function readDataFromExcelFile(filePath) {
const excelFile = xlsx.parse(filePath)
const excelSheet = excelFile.find((sheets) => sheets.name == 
"sheetname")
const excelSheetData = excelSheet.data
const headers = excelSheetData.shift()
const dataSet = excelSheetData.map((row) => {
const user = {}
row.forEach((data, idx) => (user[headers[idx]] = data))
return user
})
}

如果我说得对,您基本上是在尝试用TestCafé实现数据驱动的测试。在您的案例中,数据源似乎是Excel文件。假设您在一个JavaScript文件中有从excel文件中读取的代码:

// This is your file that contains your excel reading code, such as excel.js
import xlsx from "node-xlsx"
// the export keyword is necessary for the function so that it can be imported within other files 
export function readDataFromExcelFile(filePath) {
// your excel file reading code goes here
}

将以下代码添加到包含测试代码的JavaScript文件中,以迭代您之前从Excel文件中检索到的数据集,并根据您的数据做出您需要做的任何操作和断言:

import { readDataFromExcelFile} from './excel.js'; // import excel reading function from excel.js
// Create a fixture (test-suite) for your your data-driven tests
fixture `My data-driven tests`
.page `https://www.mySampleUrl/further/stuff/`;
const dataSet = readDataFromExcelFile("path/to/your/excel.xlsx")
// iterate over the dataSet that was previously returned from your readDataFromExcelFile function
dataSet.forEach(data => {
// Create & execute a test for each dataSet entry
test(`Test for'${data.someTestIdentifier}'`, async t => {
// Your test specific content. Test actions and assertions/validations come here
await t.expect(Selector("h1").textContent).eql(data.someDataEntry);
});
});

在这里使用TestCafé进一步了解数据驱动的测试。

最新更新