首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >添加自定义命令,该命令返回字符串、类型记录

添加自定义命令,该命令返回字符串、类型记录
EN

Stack Overflow用户
提问于 2019-10-16 20:32:15
回答 2查看 189关注 0票数 0

我对柏树很陌生,我正努力用打字本学习柏树。

当我试图添加自定义命令时,我将面临一个问题。

代码语言:javascript
运行
复制
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;        
      }
    }
  }

规范文件

代码语言:javascript
运行
复制
it('Login Test', () => {
cy.visit(cy.getEnvURL(Cypress.env('environment')));
 });

当我试图从spec文件调用getEnvURL()自定义方法时,我期望它会返回URL字符串。当我做测试的时候,它什么也没做。

有人能帮我解决这个问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-17 00:23:02

问题应该是您的代码行。

代码语言:javascript
运行
复制
cy.visit(cy.getEnvURL(Cypress.env('environment')))

cy.getEnvURL返回一个对象,而不是返回值'testURL‘或'StaggingURL’。

你能试一下这段代码吗?

代码语言:javascript
运行
复制
cy.getEnvURL(Cypress.env('username')).then(($url) => {
        cy.visit($url)
    })
票数 0
EN

Stack Overflow用户

发布于 2019-10-17 05:43:10

说到cy命令或自定义命令,它们总是异步返回结果。您只使用中的实际结果数据,然后使用块。https://docs.cypress.io/guides/core-concepts/introduction-to-cypress.html#Subject-Management

在我看来,cy命令不是你所需要的。我希望在应用程序启动之前设置变量环境,并且不会在运行时更改。如果是这样的话,您只需要创建一个简单的模块,test-utils.ts或任何东西,放在下面

代码语言:javascript
运行
复制
export const getEnvUrl = (env: string) => {
  const env = Cypress.env('environment')
  if (env === 'staging') {
    return 'staging-url'
  } else {
    return 'test-url'
  }
}

在柏树试验中,你可以直接使用它。

代码语言:javascript
运行
复制
cy.visit(getEnvUrl())
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58421277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档