提问人:Jimmy 提问时间:4/18/2023 最后编辑:user16695029Jimmy 更新时间:4/18/2023 访问量:98
如何从另一个测试文件访问 cypress.env 文件
How to access cypress.env file from another test file
问:
用作常用功能的存储。
以下是生成令牌的代码:command.js
Cypress.Commands.add('get_token', () => {
cy.api({
method: "POST",
url: "https://api-stg.sample.com/login",
body:
{
"mobile_number": 09123456789,
"password": "p@ssw0rd"
}
})
.then((response) => {
const token = response.body.data.access_token.token
cy.log("Bearer token: " + token )
Cypress.env('token', token)
})
})
在我的测试文件中,我尝试使用该函数并使用生成的令牌将值放在我的标头上:授权get_token
use_auth_from_commandjs () {
cy.get_token()
cy.api({
method: "POST",
url: "https://api-stg.sample.com/auth",
headers: { 'Authorization': `Bearer ${Cypress.env('token')}`},
...
为什么我无法从我的测试文件访问?
根据我的理解,使用将变量设置为全局变量。Cypress.env('token', token)
Cypress.env( )
在我的日志上,持有者令牌始终为 .undefined
"Authorization": "Bearer undefined",
答:
2赞
user16695029
4/18/2023
#1
这很微妙,但您的命令正在加载设置之前的值。cy.api()
Cypress.env('token')
您可以通过像这样推迟第二个命令的加载来绕过它cy.api()
use_auth_from_commandjs () {
cy.get_token()
.then(() => { // using .then() means do next part after previous commands have run
cy.api({
method: "POST",
url: "https://api-stg.sample.com/auth",
headers: { 'Authorization': `Bearer ${Cypress.env('token')}`},
..
})
...
评论