首页 > 解决方案 > cypress.io 参数化测试的问题

问题描述

我想用 cypress.io 开始一个参数化的动态测试。用于此的参数位于名为 params 的文件中。在变量 params 从文件中获取参数之前,但是 forEach 循环遍历初始值 1 和 2。有人可以给我一个解决问题的提示吗?

describe('Suite', () => {

    let params=[1,2];

    before(() =>{

        cy.readFile('cypress\\fixtures\\params.txt').then( data=> {

            params = data;
            params= params.replace(/(\r\n)/gm, "\t");
            params = params.split('\t');
            cy.log(params);
          })
    })

    params.forEach( param  =>{

        it('Testing with '+param+':', ()=>{

            ...
        })

    });

})

标签: javascripttestingautomated-tests

解决方案


这个怎么样:在夹具 params.json 文件中:

[
  {
    "name": "Test 1",
    "something": "Some text"
  },
  {
    "name": "Test 2",
    "something": "Some other text"
  }
]

在集成 test.spec.js 文件中:

const params = require('../fixtures/params.json');

params.forEach((test) => {
    it(test.name, () => {
        cy.log(test.something);
    });
});

这是结果: 在此处输入图像描述


推荐阅读