Cucumber JVM 中的动态特征文件分配

Dynamic Feature File allocation in Cucumber JVM

我正在为我的一些技术知识较少的同事创建一个可执行的 jar 文件,以便 运行 测试而无需使用命令行。这是一个简单的图形用户界面,其中 select 他们想要测试的功能和步骤库都打包在其中。

除一个小问题外,一切正常。目前我必须指定我从哪里调用功能文件。现在我有这个设置来寻找 features= {"c://Features"} 文件夹和 运行 里面的任何东西。我希望这更加动态,这样他们就不必创建功能文件夹,并且使用我可以通过 gui 生成的变量,他们可以指向他们想要的任何文件。

我目前的解决方法是我只是从他们选择的任何文件中读取并在每次测试后清理的功能文件夹中创建一个副本。这不是最优的,我想让我的用户指向他们想要的任何文件夹和该文件夹中的 运行 功能文件,因为我们的一些客户不允许我们修改他们的 C 驱动器。我仍然可以写入他们 select 的文件夹并创建临时文件副本,这很好。但是注释不允许我传入变量,我反而得到了这个错误。

The value for annotation attribute CucumberOptions.features must be a constant expression

您可以使用 QMetry Automation Framework to run your gherkin. With QAF gherkin client 您将能够从 xml 配置文件将您的功能配置为 运行。在那里,您可以将多个目录或功能文件之一指定为 运行,也可以应用过滤器,或者您可以在不同平台上将测试配置为 运行。这是示例 xml 配置文件

<test name="Gherkin-QAF-Test">
   <parameter name="scenario.file.loc" value="resources/features" />
   <classes>
      <class name="com.qmetry.qaf.automation.step.client.gherkin.GherkinScenarioFactory" />
   </classes>
</test>

此外,您可以将 scenario.file.loc 设置为命令行参数或在属性文件中。