【发布时间】:2019-06-05 15:07:17
【问题描述】:
我想创建一个自定义登录命令。我已将命令添加到我的 commands.js 文件中,并且还将导入命令添加到 index.js。
当我在我的集成文件夹下创建一个新的测试文件时,我尝试使用cy.loginWith() 引用我的新命令,但它没有将其识别为命令。
如果我将 import ../../../support/commands 添加到新登录规范文件的顶部,cy.loginWith() 自定义命令将被识别并正确调用。
但是我知道这不是一件好事。
这是我在commands.js 文件中的自定义命令:
Cypress.Commands.add('loginWith' , (email, password) => {
cy.get('[name="username"]').type(email)
cy.get('[name="password"]').type(password)
cy.get('[name="Login"]').click()
})
这是我的 index.js 文件:
import "./commands.js"
这是我的 list.js 规范文件,位于 /cypress/integration/clients/client list/lists 下:
/// <reference types="Cypress" />
import "../../../support/commands"
// login to the app
it('A User logs in and sees a welcome message', () => {
cy.visit('.../login.cfm')
cy.loginWith('username', 'password')
expect(cy.contains('Welcome back!'))
}
)
是否有一些我可能错误配置的东西无法识别index.js 文件?
【问题讨论】:
-
supportFile在cypress.json中的值是否指向您的index.js文件?如果未设置,您是否已将index.js从其默认位置移出? -
我的 cypress.json 中唯一的内容是:{ "requestTimeout": 25000}
-
是位于
[project root directory]/cypress/support/index.js的index.js文件吗? -
是的。它应该在其他地方吗?
-
不,这是默认位置,它应该在哪里。我正在检查它是否没有被移动 - 然后赛普拉斯将无法连接它。不知道为什么找不到
标签: cypress