我对柏树很陌生,我正努力用打字本学习柏树。
当我试图添加自定义命令时,我将面临一个问题。
Cypress.Commands.add('getEnvURL', (environment) => {
if(environment === ('Dev')){
return 'testURL';
} else if (environment === ('Stagging')){
return 'StaggingURL';
}
});
declare global {
namespace Cypress {
// tslint:disable-next-line:interface-name
interface Chainable<Subject> {
getEnvURL(environment: string): string;
}
}
}
规范文件
it('Login Test', () => {
cy.visit(cy.getEnvURL(Cypress.env('environment')));
});
当我试图从spec文件调用getEnvURL()自定义方法时,我期望它会返回URL字符串。当我做测试的时候,它什么也没做。
有人能帮我解决这个问题吗?
发布于 2019-10-16 16:23:02
问题应该是您的代码行。
cy.visit(cy.getEnvURL(Cypress.env('environment')))
cy.getEnvURL返回一个对象,而不是返回值'testURL‘或'StaggingURL’。
你能试一下这段代码吗?
cy.getEnvURL(Cypress.env('username')).then(($url) => {
cy.visit($url)
})
发布于 2019-10-16 21:43:10
说到cy命令或自定义命令,它们总是异步返回结果。您只使用中的实际结果数据,然后使用块。https://docs.cypress.io/guides/core-concepts/introduction-to-cypress.html#Subject-Management
在我看来,cy命令不是你所需要的。我希望在应用程序启动之前设置变量环境,并且不会在运行时更改。如果是这样的话,您只需要创建一个简单的模块,test-utils.ts或任何东西,放在下面
export const getEnvUrl = (env: string) => {
const env = Cypress.env('environment')
if (env === 'staging') {
return 'staging-url'
} else {
return 'test-url'
}
}
在柏树试验中,你可以直接使用它。
cy.visit(getEnvUrl())
https://stackoverflow.com/questions/58421277
复制相似问题