【问题标题】:Cucumber: is it possible to read .feature files from a remote location?Cucumber:是否可以从远程位置读取 .feature 文件?
【发布时间】:2018-01-30 01:11:47
【问题描述】:

我知道如何指定功能文件的本地路径(例如 Java 中的 @CucumberOptions(features = "<feature_path>")),但是否可以从远程位置(即从 Github)读取功能文件?

动机:我有几个不同语言的 API 客户端库,它们需要遵守同一组核心规范。我使用 Cucumber 功能文件作为规范的语言不可知基础,然后为每个库编写步骤定义。为每个项目复制功能文件似乎很愚蠢,但到目前为止,我还无法找到如何从远程位置读取它们。

例如,设置@CucumberOptions(features = "https://github.com/<repo_path>/features") 会产生以下错误:

Tests in error:
  initializationError(com.<package_name>.feature.RunCukesTest): 
    Not a file or directory: /<local_path>/https://github.com/<repo_path>/features

注意,我以 Java 为例,但我很想听到任何 Java/PHP/Ruby/Javascript 的答案。

对 Cucumber 很陌生,所以如果这是一个迟钝的问题,请原谅我。

【问题讨论】:

  • 我怀疑这样的事情是可能的,但我必须检查黄瓜源代码来确认这一点。你在使用像 maven 这样的依赖管理器吗?如果是,您可以尝试使用例如 maven-dependency-plugin 或 maven-download-plugin 在预集成测试阶段下载工件。
  • 是的,我正在使用 maven——我希望有一个适用于所有库的解决方案,但这是一个不错的主意。我可能也可以在其他语言中找到类似的东西。
  • 我们将功能文件复制到一个 tmp 文件夹,然后在本地执行。

标签: cucumber cucumber-jvm cucumberjs


【解决方案1】:

据我所知,您无法指定远程位置来读取功能文件。我想远程位置是您通过网络而不是文件系统找到的东西。

您可以指定功能文件的路径,从而在许多情况下使用相同的功能文件。但这要求您始终将代码保存在彼此相对的位置。做到这一点的一种方法是使用所谓的 mono repo。这是您所有实现的一个存储库。 Mono repos 被一些成功的团队使用。 Cucumber 团队正朝着这个方向前进,以便更轻松地保持常见事物的同步。所有 Gherkin 实现,独立于实现语言,都存在于一个单一的 repo 中。

【讨论】:

  • 这看起来像是给我的答案:“......你不能指定一个远程位置来读取特征文件。”谢谢。
【解决方案2】:

为什么不使用 Linux FuseFS 来完成这样的任务呢? curlftpfs,例如

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-16
    • 2011-04-05
    • 2012-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多