运行 黄瓜在不同环境下的特征

Running cucumber features over different environments

我有一堆在 Java 和 JUnit 中使用 Selenium 执行的 Cucumber 功能。到目前为止,这段代码不受版本控制,在我的开发环境中只有 运行s。但现在我们需要开始将事情提升一个层次并对自动化代码进行版本控制,并 运行在不同的环境中对其进行管理。

我的代码中有很多地方特别提到了我的环境。这将是诸如转到我的 DEV 环境 URL 并执行一些 Selenium 操作或连接到我的 DEV 数据库之类的事情。所以我意识到我需要整理这些方法,以便传入特定于环境的内容。

我的问题是什么决定了我想要什么环境 运行 检查,这样我就可以将环境特定的东西传递给这些需要知道的方法,例如 URL名称和数据库连接的东西?我看到有人提到为此使用 Maven 属性,还看到有人提到使用 CucumberOptions 编写单独的 运行ner class。我想知道是否有人们使用的通用方法,因为这无疑是一项常见任务。

希望这是解决这个问题的正确论坛。

您可以创建 testconfig.properties

应该有

ENV=https://www............
DBURL=hostname and port
TESTDATA_FILE=\file location

只需在控制台中记录它们说 运行 ENV 后跟 URL

您可以在您的 ENV.And 的属性文件中列出所有网址,您可以使用 ** 评论不需要的网址。

因此,这将成为您框架中的可配置参数,无需更改代码。

根据我的经验,环境变量与配置脚本一起使用,因此您可以通过 CLI 参数传递和使用它们。

we need to start bringing things up a level and versioning the automation code and running it in different environments.

这在使用 CI 服务器(如 Jenkins)时非常有用,这些服务器通常用于编排和执行此类作业,

decide what environment ... to run the checks in ... then pass that environment specific stuff into these methods that need to know, such as URL names and DB connection stuff

我发现通过在运行时传入系统 属性 来切换行为相对容易,例如 mvn clean test -Denv=uat。实施良好的管道将为您处理所有这些。