我想创建一个自定义登录命令。我已将该命令添加到我的commands.js文件中,并将导入命令添加到index.js.
当我在集成文件夹下创建新的测试文件时,我尝试使用 引用我的新命令cy.loginWith(),但它没有将其识别为命令。
如果我将导入添加../../../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()
})
Run Code Online (Sandbox Code Playgroud)
这是我的 index.js 文件:
import "./commands.js"
Run Code Online (Sandbox Code Playgroud)
这是我的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!'))
}
)
Run Code Online (Sandbox Code Playgroud)
是否有什么我可能配置错误而无法识别该index.js文件?
我的问题是智能感知工作正常,并且在执行以下操作后一切都运行良好:
import '../support/commands';
我的修复非常简单...只需添加supportFile到您的cypress.json:
{
"supportFile": "cypress/support/index.ts",
"baseUrl": "http://localhost:3000"
}
Run Code Online (Sandbox Code Playgroud)
// index.ts
import './commands'
Run Code Online (Sandbox Code Playgroud)
我重新启动了 Cypress,并选择了正确的项目文件夹,现在一切正常了。我想对我来说,解决方案是确保选择正确的项目文件夹。不过还是感谢您的所有建议。
| 归档时间: |
|
| 查看次数: |
16054 次 |
| 最近记录: |