我希望能够将baseUrl
文件中的cypress.json
传递到我的赛普拉斯测试项目的scripts
文件的package.json
中。这可能吗?
我一直在寻找cypress文档和堆栈溢出,但是我找不到一个解决方案,该解决方案不需要添加其他脚本来执行类似"get-base-url": "type cypress.json | jq -r .baseUrl"
的操作并将此脚本作为参数传递给相关的{{1} }脚本(见下文)
cypress.json文件
"test"
package.json脚本部分
{
"baseUrl": "http://localhost:3000/",
//other key-value pairs
}
}
我预计会有一个与{
//other settings
"scripts": {
//other scripts
"test": "start-server-and-test website:dev http://localhost:3000 cy:run",
},
//other settings
}
等效的东西,以获取json文件中Cypress.config().baseUrl
的值。
导致类似于以下内容(sudo代码,不起作用)
baseUrl
注意:我以前没有在Stack Overflow上发帖,所以如果没有提供足够的信息和/或错过规则中的内容,我深表歉意。
答案 0 :(得分:0)
脚本功能有限。您需要一个小脚本来从cypress.json接收baseUrl并将其传递到 start-server-and-test 包中 假设我们使用以下代码创建了一个名为 start-server-and-test.js 的脚本,并将其放在 scripts 目录
下const cypressConfig = require('../cypress.json') // line 1
const startServerAndTest = require('start-server-and-test') // line 2
const [startScript, testScript] = process.argv.slice(2) // line 3
startServerAndTest({ // line 4
start: `npm ${startScript}`,
url: cypressConfig.baseUrl,
test: `npm ${testScript}`,
})
这是我们在 package.json
中使用它的方式{
"scripts": {
"test": "node scripts/start-server-and-test.js website:dev cy:run",
},
}
简短说明: