猿问

通过可执行 JAR 从 cmdline 执行 Cucumber 测试,无需 Maven

以下是执行的步骤:

第 1 步: 基于,我构建了一个独立的 jar,其中包含使用maven-shade-plugin.

pom.xml

<build>

    <plugins>

        <plugin>

            <groupId>org.apache.maven.plugins</groupId>

            <artifactId>maven-surefire-plugin</artifactId>

            <version>2.22.2</version>

            <configuration>

                <testFailureIgnore>true</testFailureIgnore>

                <testSourceDirectory>${basedir}/src/main/java/</testSourceDirectory>

                <testClassesDirectory>${project.build.directory}/classes/</testClassesDirectory>

                <reportsDirectory>${project.build.directory}/test-output/${timestamp}</reportsDirectory>

            </configuration>

        </plugin>

        <!-- https://maven.apache.org/plugins/maven-shade-plugin/examples/executable-jar.html -->

        <plugin>

            <groupId>org.apache.maven.plugins</groupId>

            <artifactId>maven-shade-plugin</artifactId>

            <version>3.2.1</version>

            <executions>

                <execution>

                    <phase>package</phase>

                    <goals>

                        <goal>shade</goal>

                    </goals>

                    <configuration>

                        <!-- https://maven.apache.org/plugins/maven-shade-plugin/shade-mojo.html -->

                        <shadedArtifactAttached>true</shadedArtifactAttached>

                        <shadedClassifierName>standalone</shadedClassifierName>

                        <transformers>

                            <!-- https://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html -->

                                <mainClass>runners.RunCukesTest</mainClass>

                            </transformer>

                        </transformers>

                    </configuration>

                </execution>

            </executions>

        </plugin>

    </plugins>

</build>

将该main()方法添加到 runner 类中,并根据thisthisthis传递 cmdline 参数。



弑天下
浏览 83回答 1
1回答

蛊毒传说

您传递了 Cucumber 的相对路径src\main\resources\features。因为您正在执行 Jar,所以该相对路径将使用当前工作目录转换为绝对路径。但是,因为src\main\resources\features是您的功能的源文件夹,所以找不到任何内容,您会得到:线程“main”中的异常 java.lang.IllegalArgumentException:不是文件或目录:\path\to\jar\src\main\resources\features相反,您必须告诉 Cucumber 您的功能位于类路径上。您可以通过以下方式执行此操作:"classpath:features"
随时随地看视频慕课网APP

相关分类

Java
我要回答