csv 是否有可能从Cypress块内部访问变量,在它之外[关闭]

rqdpfwrv  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(102)

已关闭,此问题需要details or clarity,目前不接受回答。
**想要改进此问题吗?**通过editing this post添加详细信息并澄清问题。

14天前关闭
Improve this question
我需要做的是,在cypress中,拉入一个包含所有测试数据和所有预期结果的csv,代码应该查看预期结果并说“如果有预期结果,在运行时构建相关测试以检查该结果”这在postman中有效。.然而,这必须拉入我的csv文件,然后在it / before /beforeach块之外,然后说如果存在预期的结果,则构建it块。
不幸的是,我发现成功加载csv的唯一方法是使用cy.fixture,当你使用cy.fixture时,它加载的任何东西都不能在before / beforeEach或It等之外访问。
举例说明:

const csv = require ('neat-csv');
let csvData
before(() => {
  cy.fixture('33688-DASH-ERS-FullSchemeTest.csv').then(csv).then((data) => {
    csvData = data
})

console.log(csvData) //undefined

it('test', () => {
console.log(csvData) //shows my CSV
})

个字符

kqlmhetl

kqlmhetl1#

您在测试运行之前登录到控制台。
代码不是以你描述的线性方式执行的。

  • Cypress使用JavaScript来执行代码并发现您想要运行的命令
  • 在第一次执行时,它在空变量上执行console.log()
  • 现在测试运行
  • before()首先运行并获取夹具,设置csvData
  • it()运行next并使用csvData

如果您想在it()块之外使用csvData,请在spec文件的顶部使用require()以提前加载csvData

const csvData = require('cypress/fixture/33688-DASH-ERS-FullSchemeTest.csv')  

// csvData is now available outside of it()
// for example, you can use csvData to generate tests
csvData.forEach(data => {

  it('Data: ' + data.id, () => {
    ...

字符串

相关问题