首页 > 解决方案 > 如何在 Cucumber IntelliJ 插件中从 Classpath (jar) 链接 StepDefination 类

问题描述

我想使用来自 maven jar 依赖项的现有步骤定义类。

如果从 Runner 类(使用胶水到包)和 mvn CLI 运行,我的黄瓜测试有效。但问题在于来自 jar 的步骤的 IntelliJ Cucumber 插件。在我从 jar 中使用的功能文件步骤中,显示为“未定义的步骤参考:...”。我什至无法直接从功能文件运行。

有没有办法可以配置黄瓜插件以使用类加载器/jar中的步骤定义?

标签: javamavenintellij-ideacucumbercucumber-java

解决方案


发布解决方案对我有用:

  • 使用 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,我可以确认它有效。


推荐阅读