java - 如何在 Cucumber IntelliJ 插件中从 Classpath (jar) 链接 StepDefination 类
问题描述
我想使用来自 maven jar 依赖项的现有步骤定义类。
如果从 Runner 类(使用胶水到包)和 mvn CLI 运行,我的黄瓜测试有效。但问题在于来自 jar 的步骤的 IntelliJ Cucumber 插件。在我从 jar 中使用的功能文件步骤中,显示为“未定义的步骤参考:...”。我什至无法直接从功能文件运行。
有没有办法可以配置黄瓜插件以使用类加载器/jar中的步骤定义?
解决方案
发布解决方案对我有用:
- 使用 IntelliJ 2020.1 +
- 在黄瓜运行配置中:为类路径选择 jar manifest
- 将带有源 jar 的 Jar 也部署到 Nexus,如下所示
maven-source-plugin
您可以通过在构建中添加插件来简单地做到这一点
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
- 在其他项目中添加依赖项并确认源是从 repo 下载的
File -> Project Structure -> Libraries -> Select the Artifact -> Sources ,确保它不是红色的。
- 更新 IntelliJ 以使用最新版本,对我来说 IntelliJ 版本 2019 不起作用,但 2020.1 能够找到步骤定义。
PS:我使用 Java8 和 Lambda exp,我可以确认它有效。
推荐阅读
- r - 从修改后的 arma::vec 对象中高效采样
- php - 如何注入用户,这样我就不必在 Laravel 请求中查找他了?
- google-bigquery - 日期卷积通过时间戳转换表 - 如何
- data-structures - 如何使用朴素贝叶斯分类器进行多类分类?
- scala - 将入口 hocon 转换为数据框
- sql - 在大视图上选择列子集时的数据库引擎效率?
- mysql - 查找销售人员拥有的潜在客户数量
- c++ - Boost 胎面代码在 VC++ 下编译但不在 GCC 下编译:如何获得更好的调试信息
- javascript - JavaScript 函数重载/覆盖
- angular - 当放置在延迟加载模块的组件中时,Angular 6 指令未初始化