mlr*_*uez 3 typescript cypress cypress-configuration
我有一个赛普拉斯框架,我正在其中测试用户页面(他们可以在其中与页面交互,下载文件,更新他们的个人资料等),以及该用户页面的管理页面(单独登录,实际上可以作为管理员,修改用户页面中的内容)。因此,我有三个配置文件:
cypress.config-admin.ts,其中我有管理页面的 baseUrl(如www.mypage.admin.com)。我在文件中传递 --config-file 标记package.json以进行无头测试。cypress.config-user.ts我有用户页面的 baseUrl ( www.mypage.com)。我在文件中传递 --config-file 标记package.json以进行无头测试。cypress-config.ts,我用它通过赛普拉斯仪表板手动运行测试。有时我需要在同一个测试用例中使用两个 URL(以管理员身份执行某些操作,以用户身份进行验证)。
我的问题是,当我使用 时Cypress.config().baseUrl,它只会显示 上的值cypress.config.ts。我已经尝试了多种方法,但还没有找到在admin或user配置文件上调用 baseUrl 的方法。
https://docs.cypress.io/api/cypress-api/config似乎建议我可以传递配置文件的名称,但我无法做到这一点=/
有任何想法吗?
您将各种定义baseUrl为 env 条目,然后根据需要在测试中设置它们。
这为您提供了单个配置,但可以访问多个版本的baseUrl(假设这就是您在各个配置版本中更改的所有内容)。
赛普拉斯.config.js
const { defineConfig } = require('cypress')
module.exports = defineConfig({
e2e: {
baseUrl: 'http://localhost:1234', // default
},
env: {
userBaseUrl: 'www.mypage.com',
adminBaseUrl: 'www.mypage.admin.com',
},
})
Run Code Online (Sandbox Code Playgroud)
测试:
it('tests with the admin page',
{baseUrl: Cypress.env('adminBaseUrl')}, // per-test configuration
() => {
const userBaseUrl = Cypress.env('userBaseUrl') // access urls for test
const adminBaseUrl = Cypress.env('adminBaseUrl')
// or configure on the fly
Cypress.config('baseUrl', adminBaseUrl)
cy.visit('/') // goes to adminBaseUrl
// or use the env setting directly
cy.visit(Cypress.env('adminBaseUrl'))
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1329 次 |
| 最近记录: |