当前位置: 首页 > 知识库问答 >
问题:

如何从命令行向cypress规范文件传递值?

毕富
2023-03-14

我在几个不同的环境中运行Cypress测试(即envaenvbenvc)

我运行的测试是这样的:

NPM运行Cypress:open----env apiendpoint=https://app-enva.mysite.com

NPM运行Cypress:open----env apiendpoint=https://app-envb.mysite.com

在我的一个Cypress测试中,我正在测试一个值,该值根据所测试的环境而变化。

例如:

expect(resourcetiming.name).to.eq('https://cdn-enva.net/mypage.html')

我的问题是--我如何更新规范文件,以便当我在不同的环境中运行时断言正确的URL?

我想知道是否有一种方法可以将一个值从命令行传递给spec文件,告诉spec文件我在哪个环境中,但我不确定这是否可能。

共有1个答案

史懿轩
2023-03-14

您可以在断言中直接使用cypress.env('api endpoint'),这样无论您通过CLI传递什么,您的规范文件都具有相同的值-

expect(resourceTiming.name).to.eq(Cypress.env('apiEndpoint'))

如果您希望检查当您传递https://app-enva.mysite.com并且您在规范文件中期望的url是https://cdn-enva.net/mypage.html时,您可以使用:

expect(resourceTiming.name).to.eq(Cypress.env('apiEndpoint').replace('app', 'cdn').replace('mySite.com', 'net') + '/myPage.html')
 类似资料:
  • 我尝试将参数从命令行传递到gradle。 我的身材是: 当我这样做时: 我得到这个: 我的问题是我应该为main提供什么?任何java文件包的名称?有具体的路径吗?什么应该是真正的源集?

  • 我试图将一个参数从命令行传递到java类。我关注了这篇文章:http://gradle.1045684.n5.nabble.com/gradle-application-plugin-question-td5539555.html,但是代码对我来说不起作用(也许它不适合JavaExec?)。以下是我所尝试的: 上面硬编码的args值的输出是: 任何关于如何将命令行参数传递给gradle的指针都很感

  • 考虑下面的用例。 设计用于创建用户帐户的测试用例。 现在我想用不同的参数运行这个测试用例,例如名称、年龄等,我想通过命令行控制这些参数。

  • 问题内容: 我很难找到答案。使用普通的Node.JS,您可以使用,CoffeeScript 和ES6具有的任何js文件。我如何使用Typescript进行操作? 我的项目有一个供Webpack / ts- loader使用的工具,用于为浏览器构建一个不错的小捆绑包。不过,在此之前,我需要从控制台运行一个构建步骤,该步骤将使用项目中使用的某些文件来生成模式,但是如果不进行编译,我似乎无法运行单个Ty

  • 问题内容: 我有以下问题。我想从命令行运行一个文件。接受参数。 如何从命令行执行此操作? 我试图找到一个例子,但没有成功。有人可以帮我举一个例子吗? 我看了这里,但不太明白该怎么办。 另外, 如何从与Main.java文件夹不同的文件夹中执行该命令? 例如位于。我应该放什么 问题答案: 您可以运行:。 这会将参数 arg1 传递给您的程序。 您应该指定完全合格的主类,例如,在包测试中的Main.j

  • 我创建了一个扫描器,从命令行中的第一个元素读取文本文件,但它会导致。如何将其格式化为接受此文件的位置? 下面是我的代码: 例如,如果文件名是,我将作为命令行中的第一个元素。