问题标签 [cucumber-jvm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
groovy - Cucumber JVM 的(Groovy)“世界(Hooks)”对象混合和 Intellij 导航
我正在 intellij 中使用 Cucumber JVM (Groovy) 开发黄瓜场景。我必须说,事情比在 Eclipse 中做同样的事情要好得多。
我想解决一个小问题,让我的团队变得更好。但是由于我是 Intellij 的新手,所以我需要以下帮助:
- 当我在 step def 文件(groovy)中时,Intellij 似乎看不到黄瓜“World”对象中定义的变量和方法。因此,对于那些有点烦人的东西,不要获得 IDE 支持(自动完成等)。我该如何解决?
webdriver - 谁能帮我在 TeamCity 中获取 cucumber-jvm 报告?
最近,我在理解 CI 系统如何与源代码控制等集成方面取得了一些重大进展。
我正在努力寻找的一件事是,当涉及到 cucumber-jvm 和 TeamCity 时,我如何能够获得更好的报告。当 TeamCity 通过我的 BDD(Webdriver)测试进行时,我看到了一大堆看起来很可怕的文本。
有没有人知道/有任何报告经验,明确针对 TeamCity 的 cucumber-jvm?
我已经尝试过通常的嫌疑人;google、博客、GitHub 页面等,但无济于事。
我见过的最好的是这个……但它在詹金斯身上。
我目前也在研究诸如万无一失的报告之类的东西。但如果在 TeamCity 中拥有一些东西,那就太好了。
非常感谢!
cucumber-jvm - Cucumber JVM:测试是否抛出了正确的异常
使用 Cucumber JVM 时如何测试是否抛出了正确的异常?使用 JUnit 时,我会这样做:
如您所见,这是非常优雅的。但是,当使用 cucumber JVM 时,我怎样才能达到同样的优雅呢?我的测试现在看起来像这样:
注意需要一个try
..catch
后跟一个assertTrue
on 标志。
cucumber - 黄瓜选项注释
cucumber-jvm javadocs声明glue 元素的目的是指定stepdefinitions 和hook 的位置。但是,这似乎对我不起作用。假设我在目录 a 中有我的功能,在目录 b 中有我的步骤定义。然后,
将从directory_a 加载我的功能文件,但是它不会从directly_b 加载我的步骤定义。但是,如果我使用
然后我的 directory_a 功能被加载,并且我的 directory_b 步骤定义也被拾取。这正是我想要的,但是,我不明白为什么前者不起作用?我猜这与期望 URI 的格式不同(也许我需要在 classpath:// 或类似的东西前面加上)有关,但我在文档中找不到任何相关信息。
gradle - Gradle 下载 pom.xml 但不下载 Cucumber 的 .jar 文件
我正试图让 Cucumber 从 Gradle 运行。当我尝试执行 Cucumber 测试时,我得到
Gradle 下载了 cucumber-jvm-1.1.3.pom 文件,但没有下载任何 cucumber .jar 文件。这是我的 build.gradle:
我尝试将依赖项更改为运行时并将 cucumberRuntime 更改为从运行时扩展,但结果是相同的。
为什么 gradle 没有认识到它需要下载 cucumber .jar 文件?
谢谢。
cucumber-jvm - 在 Cucumber-jvm 中使用多个 @Before 时出现 NullpointerException
我正在使用黄瓜-jvm。
我有一个 init 方法来初始化所有必要的东西,例如浏览器尺寸、应用程序 url 等。我已将此 init 方法放在 @Before (cucumber.api) 标记下。
我的生活很顺利,顺利进行。现在,我还想在场景级别对某些标签使用@Before。假设我的场景如下所示:
我想使用类似的东西:
但是当我给它另一个@Before 的那一刻,它开始给出一个 NullPointerException。我将其追溯到 Cucumber 的 Runtime 类中的 runBeforeHooks 和 runHookIfTagsMatch 方法。他们正在为@Before(对于initLoginPage())本身抛出异常。多个@Before 是否会产生冲突?我该如何解决这个问题?
java - 如何在验收测试期间从 Struts 2 获取 ActionContext?
我正在使用 cucumber-jvm 在以 Struts 2 和 Tomcat 作为我的 Servlet 容器的应用程序上编写验收测试(测试行为)。在我的代码中的某个时刻,我需要从 Struts 2 中获取用户,该用户HttpSession
由HttpServletRequest
.
由于我正在进行测试并且没有运行 Tomcat,因此我没有活动会话并且我得到了一个NullPointerException
.
这是我需要调用的代码:
和 getSession 方法:
老实说,我对 Struts 2 了解不多,所以我需要一点帮助。我一直在看这个带有嵌入式 tomcat 示例的 cucumber-jvm,但我很难理解。
我也一直在看这个Struts 2 Junit Tutorial。遗憾的是,它并没有很好地涵盖所有StrutsTestCase
功能,而且它是最简单的用例(综合考虑,这是一个非常无用的教程)。
那么,如何像用户使用应用程序一样运行验收测试呢?
更新:
感谢史蒂文贝尼特斯的回答!
我必须做两件事:
- 按照建议模拟 HttpServletRequest,
- 模拟 HttpSession 以获得我想要的属性。
这是我添加到我的 cucumber-jvm 测试中的代码:
}
cucumber - 将值列表传递给 Cucumber 场景大纲
我有一个验证 100 个员工姓名的场景,QueryString 将以 xml 格式返回它们。我要做的就是验证 Assertion 语句中的所有员工姓名,如下所示。除了在场景大纲示例中添加每个名称之外,是否可以发送一个包含 100 个员工姓名的列表作为输入,以便我可以在 java 中遍历它们并在断言条件下轻松验证。请指教。
java - 如何让 Cucumber-JVM 与 Gradle 和 Guice 一起工作?
Cucumber-JVM 和 Gradle 不能很好地配合。这是众所周知的,并且解决方法已经存在了一段时间。
但是,我无法使用 Guice 作为 DI 容器进行一些更高级的测试的解决方法:Cucumber 不会选择属性文件中配置的 Guice 模块,甚至可能不会选择文件本身,导致需要多次配置单例。
我的项目符合标准布局 ( src/test/java
, src/test/resources
),Cucumbercucumber-guice.properties
位于资源文件夹的根目录中。在我选择的 IDE IntelliJ IDEA 中,测试运行良好。
你知道如何进行这项工作吗?
cucumber - Cucumber/gradle 示例不生成报告?
我正在研究同时使用 gradle 和 cucumber,并在 cucumber 的 github 中找到了这个可爱的例子。
所以,我克隆了存储库并自己运行它。它失败了,因为它被配置为这样做,但我找不到它似乎被配置为输出的 HTML 或 JSON 报告。我说出现是因为我对黄瓜是全新的,但是这个类似乎表明它将把它放在哪里:
但是,运行后它并没有出现在构建目录中gradle cucumber
。没有 cucumber-html-report 目录,也没有 cucumber-report.json 文件。如果重要的话,我正在使用 Java 7 和 Gradle 1.6 运行它。
想法?这是 Cucumber/Gradle 集成的已知问题吗?