javascript - 从另一个文件(Cypress、JS)访问变量会导致重复测试运行

标签 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()
  })

我还有 payment.spec.js ,我需要使用完全相同的值。

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

在某些情况下,我需要根据随机生成的值做出一些断言。这个结构有效,但不符合我的预期。结果如下:

enter image description here

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

我尝试过的:

  • 将 const 声明移出上下文

  • 尝试创建自定义命令 (../support/commands),但收到诸如 userCount 不是函数userCount 未定义 之类的错误。另外,我也尝试在 Cypress 的支持文件夹下使用 index.js。

如何从另一个文件访问该 const 变量而不重复我的测试并使用相同的值?我应该如何进行?难道是我报关导出的方式不对?

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

提前致谢! 问候。

最佳答案

将 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()
  })
<小时/>

付款.spec.js

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

关于javascript - 从另一个文件(Cypress、JS)访问变量会导致重复测试运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58958042/

相关文章:

javascript - 什么可以防止滥用 Firebase 的 createUserWithEmailAndPassword?

reactjs - 使用 Cypress React js 测试 Login Auth0

cypress - MSAL 和 OAuth 2.0 - 以编程方式请求授权代码

Cypress - 如何最好地测试多步骤流程

javascript - 如何使用 javascript_include_tag 从 vendor/assets/javascripts 添加特定于 Controller 的 javascript?

javascript - 处理 Angular 2 中动态创建的组件的 @Input 和 @Output

javascript - jQuery 将值设置为委托(delegate)输入字段

javascript - 添加属性以使用父级的数据属性进行选择?

javascript - Cypress 覆盖 'type' 命令添加一个小等待,如果之前调用 .clear() 会抛出 promise 错误

graphql - 如何使用 cypress stub 对 graphql 的调用?