- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我一直在本地主机上设置测试,但现在我想将它们设置为在几个不同的环境上运行,但在所有环境上我都有一个单独的baseUrl和apiUrl。dev 有:http://base.url.com
和 api:http://base.url.com/api
prod 具有:https://prod.url.com
和 api:https://prod-api.url.com/v1
我已经阅读了这里的文档和一些帖子(尽管其中很多来自 cypress v10 之前的内容),但我无法决定什么是最好的方法。我倾向于创建不同的配置文件(cypress-dev.config.ts、cypress-prod.config.ts 等),每个文件针对不同的环境,如下所示:
e2e: {
baseUrl: 'http://base.url.com',
env: {
apiURl: '..'
}}
创建新的 npm 脚本,我将 cypress 设置为在特定环境中运行时使用正确的配置文件。
我考虑过使用一个配置文件,但我无法弄清楚到底如何做。
e2e: { env: {
development: {
baseUrl:'baseURlDev',
apiURl: 'apiUrlDev'
},
production: {
baseUrl:'baseURlProd',
apiURl: 'apiUrlProd'
},
staging: {
baseUrl:'baseURlStag'
apiURl: 'apiUrlStag' }
}}
以及如何使用它是我的 Cypress 代码。 Cypress.env('环境类型.baseUrl')??这个我不太清楚。
或者也许还有我还没有考虑过的第三种巧妙的方法?
最佳答案
当 Cypress v10 将配置从 cypress.json
更改为 cypress.config.js
时,好处之一是允许在配置中使用 javascript。
这意味着不再需要以前需要外部包的繁琐的东西(例如 dotenv 这类东西)。
这就是我实现您的环境类型
的方式
cypress.config.js
const { defineConfig } = require("cypress");
module.exports = defineConfig({
e2e: {
setupNodeEvents(on, config) {
const envName = config.env['type-of-environment'] || 'development'
const envType = config.env[envName]
config.baseUrl = envType.baseUrl;
config.env.apiUrl = envType.apiUrl;
return config
},
env: {
development: {
baseUrl:'http://baseURlDev',
apiUrl: 'http://apiUrlDev'
},
production: {
baseUrl:'http://baseURlProd',
apiUrl: 'http://apiUrlProd'
},
staging: {
baseUrl:'http://baseURlStag',
apiUrl: 'http://apiUrlStag'
},
}
},
})
package.json
{
...
"scripts": {
"cy:open": "cypress open", // defaults to development
"cy:prod": "cypress open --env type-of-environment=prod"
}
}
关于angular - 当我有不同的 baseUrl 和 apiUrl 时,为不同的环境设置 cypress,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74849225/
我想将纬度和经度变量传递给“weatherData”函数(用户的当前位置)。我无法进行此操作。我哪里出错了? let locationManager = CLLocationManager()
我有一个使用RESTEasy的项目 The REST object jar 包含一个名为resteasy-client.js 的文件该文件添加到网页中,可以更轻松地创建 HTTP 调用。有一个错误!一
我开发了一个带有 Laravel 后端的 Angular 7 应用程序。在尝试为生产构建和部署时,我遇到了一个错误。 src/app/services/user.service.ts(10,32):
所以我一直在本地主机上设置测试,但现在我想将它们设置为在几个不同的环境上运行,但在所有环境上我都有一个单独的baseUrl和apiUrl。dev 有:http://base.url.com 和 api
我是一名优秀的程序员,十分优秀!