javascript Cypress环境变量未定义

iyfjxgzm  于 2023-05-05  发布在  Java
关注(0)|答案(3)|浏览(147)

在cypress.json文件中,我有以下代码

{
  "baseUrl": "test",
  "ignoreTestFiles": [],
  "viewportHeight": 768,
  "viewportWidth": 1024,
  "video": false,

  "env": { "email": "test@email.com", "password": "password" }
}

当我试图通过调用Cypress.env('password ')来访问它时,在打印它时,它在控制台日志中显示undefined,这是什么问题?

const password: string = Cypress.env('password')

describe("Login to the application", () => {
  beforeEach(() => {
    cy.visit("/");
  });

  it.only("user should login successfully", () => {
    console.log(Cypress.env('email')).   --- undefined 
    loginPage.login(email, password);
    cy.url().should("include", "/wallet");
  });
8fq7wneg

8fq7wneg1#

我的错误是不知道或不检查我的cypress.json文件的位置,将其移动到顶部的cypress文件夹,并且值正确显示。

roejwanj

roejwanj2#

在我的Projekt(Version10.xx)中,cypress.config.ts必须位于根路径中,而不是在cypress文件夹中。您可以使用UI生成配置,以将其放在正确的位置:设置〉项目设置〉cypress.config.ts

zsohkypk

zsohkypk3#

CYPRESS V10更新。

延伸@Artjom Prozorov的回答
我们必须使用cypress.config.(js|ts)作为配置文件名。
下面给出了文件内容的示例。

import { defineConfig } from "cypress";

export default defineConfig({
  e2e: {
    specPattern: "src/**/*.cy.{js,jsx,ts,tsx}",
    baseUrl: "http://localhost:3001",
    trashAssetsBeforeRuns: false,
    viewportWidth:1920,
    viewportHeight:1080,
    slowTestThreshold: 1000,
    // watchForFileChanges : false,
    env: {
      apiUrl : "http://localhost:3000",
      commandDelay: 100,
      password: 'here it is'
    },
    reporter: 'mochawesome',
    reporterOptions: {
      reportDir: 'cypress/reports',
      overwrite: false,
      html: true,
      json: false
    },
    setupNodeEvents(on, config) {
      config.env.sharedSecret =
        process.env.NODE_ENV === 'development' ? 'itsDev' : 'itsLocal'

      return config
    }
  },

  component: {
    devServer: {
      framework: "create-react-app",
      bundler: "webpack"
    }
  }
});

注意:这个cypress.config.ts必须cypress目录中。

相关问题