通过重复的测试运行从另一个文件(Cypress,JS)访问变量,结果

时间:2019-11-20 15:33:25

标签: javascript cypress

我正在尝试从另一个文件访问const变量。这是结构:

我有 welcome.spec.js ,在这里我声明了一个const变量,如下所示,并将其导出。我正在使用此规范的值。

context('Welcome', () => {
  // Generating a random userCount value for further verifications.
  const userCount = (Math.round(Math.random()*10))
  module.exports = {userCount}
  beforeEach(() => {
    cy.visit('/')
    cy.clearCookies()
  })

我也有 payments.spec.js ,我需要在其中使用完全相同的值。

context('Payment', () => {
    const {userCount} = require ('../welcome/welcome.spec')
    beforeEach(() => {
      cy.visit('/')
      cy.clearCookies()
    })

在某些情况下,我需要根据随机生成的值做出一些断言。此结构有效,但未达到我的预期。结果如下:

enter image description here

如您所见,

付款下,它也从 Welcome 导入了我的所有测试。我有重复的测试,而这2个欢迎测试之间的随机生成值有所不同。

我尝试过的事情:

  • 将const声明移出context

  • 试图创建自定义命令(../support/commands),但出现类似 userCount不是函数 userCount未定义的错误。另外,我也尝试在赛普拉斯的支持文件夹下使用index.js。

如何在不复制测试并使用相同值的情况下从另一个文件访问该const变量?我应该如何进行?我做申报和出口的方式不对吗?

注意:根据值==> const userCount,用户在“欢迎”屏幕上输入该值,并在付款上根据该值显示输入字段。 (3个用户==> 3个用户信息字段,依此类推)

提前谢谢! 问候。

1 个答案:

答案 0 :(得分:1)

将const导出到上下文之外。导入(ES6)时,可以通过这种方式在另一个文件中访问它。

welcome.spec.js

const userCount = (Math.round(Math.random()*10))
context('Welcome', () => {
  // Generating a random userCount value for further verifications.
  module.exports = {userCount}
  beforeEach(() => {
    cy.visit('/')
    cy.clearCookies()
  })

payments.spec.js

  import {userCount} from "../welcome/welcome.spec";