javascript - 在 cypress.env.json 中定义变量

标签 javascript cypress

我想为所选应用程序的测试定义全局变量。我想将它们输入到一个文件中 - 在阅读了文档后我决定使用 cypress.env.json .

https://docs.cypress.io/guides/guides/environment-variables.html#Option-1-cypress-json

正如我看到的变量被正确导入,但在测试过程中,我得到了错误:

"TypeError: Cannot read property 'env' of undefined"

有关如何解决该问题的任何建议?

https://i.imgur.com/uEVg24I.png

测试文件:
describe('/register', () => {
    beforeEach(() => {
        cy.visit('/#/register')
    })

    it.only('requires username', () => {
        cy.get('input[type="email"]').Cypress.env('correctEmail')
        cy.get('input[type="password"]').Cypress.env('correctPassword')
        cy.get('button').contains('Sign in').click()
        cy.get('.error-messages').should('contain', 'username can\'t be blankis too short (minimum is 1 character)')
    })

cypress.env.json:
{
    "correctName": "Bob Ross",
    "incorrectName": "Bobbbbb",
    "correctEmail": "bob@ross.eu",
    "incorrectEmail": "b@bbb",
    "correctPassword": "bobrosss",
    "incorrectPassword": "Oooooo" 
}

最佳答案

要回答您最初的问题,cypress.env.json文件需要放在项目的根目录中,紧邻 cypress.json文件。
通过创建一个单独的 cypress.env.json 文件,您可以访问嵌套值,如下所示:

//cypress.env.js
{
    "user": {
        "username": "Jane",
        "password": "SuperPassword",
        "someOtherData": "veryImportantData"
    }
}
接着
//somewhere in myCypressTest.spec.ts
Cypress.env("user").username      //returns "Jane"
Cypress.env("user").password      //returns "SuperPassword"
Cypress.env("user").someOtherData //returns "veryImportantData"
不幸的是,它并没有真正准确地记录在任何地方。我不需要更改任何路径,只需移动 cypress.env.json在我最初放置它的 Cypress 文件夹之外,它开始工作。

关于javascript - 在 cypress.env.json 中定义变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56832494/

相关文章:

javascript - Angular 平图拉不加载宽度和高度

cypress - 如何获取 Cypress 中隐藏元素的 HTML?

javascript - 调用另一个自定义命令的自定义命令将无法在 Cypress 中获取其值

javascript - 如何使用 Cypress 控制元素中的文本?

javascript - 压缩 JavaScript 文件

javascript - 使用 Knockout 将 "step"绑定(bind)到输入

javascript - HTML 按钮重定向页面

javascript - 使用 facebook 登录让 typescript 为 Angular 2 项目工作

vue.js - 将 Cypress 与 vuetify 一起使用

javascript - 我怎样才能使我的部分测试可重用,以便它可以在其他 future 使用 Cypress Javascript 的测试中使用或再次调用