【问题标题】:Could we use cucumber to execute java step definitions - not cucumber -jvm我们可以使用 cucumber 来执行 java 步骤定义吗 - 不是 cucumber -jvm
【发布时间】:2016-09-08 08:14:13
【问题描述】:

有没有办法调用 cucumber 来执行一些用 java 编写的功能文件? (不像 Junit)

通常对于 ruby​​,您可以说 cucumber features/somefeature.feature,它会在 somefeature.rb 中执行步骤定义

对于 cpp,您可以通过有线协议调用 cucumber 来执行 cpp 中的 exe 步骤定义。

我的问题是,java中有没有类似的实现,你可以在java中调用cucumber来执行步骤定义。

我知道您可以通过 mvn 或 gradle 运行 cucumber - jvm 作为 Junit 测试的一部分。

但我不想在构建过程中运行此 BDD 测试。我想在 CI 的最后一步调用 cucumber,它将执行 Ruby、Cpp、Java 中的任何步骤定义

【问题讨论】:

  • 我不明白“我不想在构建过程中运行这个 BDD 测试。我想在 CI 的最后一步调用 cucumber”。有什么区别?
  • 在当前的构建过程中,我们调用mvn install,它也会将bdd测试作为maven build的一部分执行。想把那些分开。由于我们的实现将这个 bdd 测试作为 Junit 测试运行。我们最终想要实现的是让一切都建立起来。然后调用 cucumber,然后它会在特征文件上选择一行,然后它将在 CPP、JAVA、RUBY 代码中执行相应的步骤定义。目前,我们只能做 CPP 和 ruby​​,因为 cucumber-jvm 作为 Junit 测试的一部分运行。它不支持像 CPP 这样的有线协议。

标签: java maven cucumber bdd cucumber-java


【解决方案1】:

Cucumber-JVM 可以从 JUnit 运行器中执行。它也可以在不使用 JUnit 运行器的情况下从命令行执行。听起来最后一个选项就是您想要的。

探索CLI Runner,您可能会找到满足您要求的东西。

【讨论】:

  • 我会尝试重新定义问题。 IE。 cucumber-jvm 一个构建步骤,cucumber-cpp 一个构建步骤,cucumber-ruby 另一个构建步骤。我会让这三个同时运行。 CLI Runner 设置起来很麻烦,每个黄瓜变体都需要不同的依赖项。托马斯,你可以的。小凡人,没那么多。 :-)
最近更新 更多