如何从 Cucumber IntelliJ 插件中的类路径 (jar) link StepDefination 类
How to link StepDefination classes from Classpath (jar) in Cucumber IntelliJ Plugin
我想使用来自 maven jar 依赖项的现有步骤定义类。
如果 运行 来自 Runner Class(使用包的胶水)和 mvn CLI,我的黄瓜测试有效。但是
问题是来自 jar 的步骤的 IntelliJ Cucumber 插件。在我从 jar 使用的功能文件步骤中显示为 "Undefined step reference:..."。我什至无法直接从功能文件 运行。
有没有办法配置 Cucumber 插件以使用 classloader/jar 中的步骤定义?
发布对我有用的解决方案:
- 使用 IntelliJ 2020.1 +
- 在黄瓜中 运行 配置:select 类路径的 jar 清单
- 将带有源 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 一起使用,我可以确认它有效。
我想使用来自 maven jar 依赖项的现有步骤定义类。
如果 运行 来自 Runner Class(使用包的胶水)和 mvn CLI,我的黄瓜测试有效。但是 问题是来自 jar 的步骤的 IntelliJ Cucumber 插件。在我从 jar 使用的功能文件步骤中显示为 "Undefined step reference:..."。我什至无法直接从功能文件 运行。
有没有办法配置 Cucumber 插件以使用 classloader/jar 中的步骤定义?
发布对我有用的解决方案:
- 使用 IntelliJ 2020.1 +
- 在黄瓜中 运行 配置:select 类路径的 jar 清单
- 将带有源 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 一起使用,我可以确认它有效。