【问题标题】:Cypress Data Driven Testing with Excel使用 Excel 进行赛普拉斯数据驱动测试
【发布时间】:2021-12-14 14:07:50
【问题描述】:

我正在关注this tutorial 以使用 Cypress 从 Excel 文件中读取测试数据。 该教程很棒,并且完全解释了所有内容。代码也有一个 git 存档。

我面临的错误与 TypeScript 有关。我在赛普拉斯项目中使用 TS。 问题截图:

let rowsLenght;


describe('The example shows how to use Data Driven Testing using Excel file.', () => {
    before(() => {
        cy.task('readXlsx', { file: 'cypress/fixtures/excelData.xlsx', sheet: "Sheet1" }).then((rows) => {
            rowsLenght = rows.length;
            cy.writeFile("cypress/fixtures/xlsxData.json", { rows })
        })
        cy.visit(Cypress.config('baseUrl'));
    })


    it("example shows how to use data from Excel file.", () => {
        cy.fixture('xlsxData').then((data) => {
            for (let i = 0; i < rowsLenght; i++) {
                cy.get('#username').type(data.rows[i].testData1);
            }
        })
    });
});

当我尝试执行测试时 - 一切正常。

如果我将文件扩展名从“ts”重命名为“js” - 错误就消失了。

【问题讨论】:

    标签: excel cypress data-driven-tests


    【解决方案1】:

    我找到了两个解决方案。

    1. 第一个解决方案是使用// @ts-ignore 注释,忽略编译器警报。

    let rowsLength;
    
    describe('The example shows how to use Data Driven Testing using Excel file.', () => {
        before(() => {
            cy.task('readXlsx', { file: 'cypress/fixtures/excelData.xlsx', sheet: "Sheet1" }).then((rows) => {
                // @ts-ignore
                rowsLength = rows.length;
                cy.writeFile("cypress/fixtures/xlsxData.json", { rows })
            })
            cy.visit(Cypress.config('baseUrl'));
        })
    
    
        it("example shows how to use data from Excel file.", () => {
            cy.fixture('xlsxData').then((data) => {
                for (let i = 0; i < rowsLenght; i++) {
                    cy.get('#username').type(data.rows[i].testData1);
                }
            })
        });
    });
    
    1. 第二种解决方案是将变量强制转换为any,因为该变量是“未知的”。

    let rowsLength:
    
    describe('The example shows how to use Data Driven Testing using Excel file.', () => {
        before(() => {
            cy.task('readXlsx', { file: 'cypress/fixtures/excelData.xlsx', sheet: "Sheet1" }).then((rows: any) => {
                rowsLength = rows.length;
                cy.writeFile("cypress/fixtures/xlsxData.json", { rows })
            })
            cy.visit(Cypress.config('baseUrl'));
        })
    
    
        it("example shows how to use data from Excel file.", () => {
            cy.fixture('xlsxData').then((data) => {
                for (let i = 0; i < rowsLenght; i++) {
                    cy.get('#username').type(data.rows[i].testData1);
                }
            })
        });
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-20
      • 2023-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多