带有黄瓜的可执行罐。错误:“您可以使用下面的代码片段执行缺少的步骤”

时间:2019-10-21 11:49:12

标签: maven cucumber executable-jar serenity-bdd

我有:  -宁静的黄瓜  -Java / Junit  -maven-assembly-plugin

net.serenity-bdd:2.0.81 maven-assembly-plugin:3.1.1

我需要准备可执行的jar文件以进行带有注释的运行测试,例如:@jartest

位于scr-> test中的项目文件

  • 功能文件:src->资源-> prj->回归
  • StepDefinition:src-> java-> company.name-> prj.qa-> steps_v2
  • TestRunner 称为“ JarRunner”。位于src-> java-> runner
@RunWith(CucumberWithSerenity.class)
@CucumberOptions(
        plugin = {"pretty"},
        features="./classes"
        ,glue = {"./classes"}
        ,tags = {"@jartest"}
)

public class JarRunner {
    public static void main(String[] args) {
        System.out.println("TestRunner...");
        JUnitCore junit  = new org.junit.runner.JUnitCore() ;
        try {
            throw new Exception();
        } catch(Exception e) {
            // code to handle the exception
            Result result = junit.run(JarRunner.class);
            for (Failure failure : result.getFailures())
            {
                System.out.println(failure.toString());
            }
        }
    }
}

pom.xml

apache资源插件,用于在构建后将所有Feature / stepDefinitionClass捕获到一个文件夹中

<resources>
                    <resource>
                            <directory>src/test/resources/msp/regression</directory>
                    </resource>
                    <resource>
                            <directory>src/test/java/de/telekom/msp/qa/run/steps_v2</directory>
                    </resource>
                    <resource>
                            <directory>src/test/java/de/telekom/msp/qa/adbc/steps</directory>
                    </resource>
            </resources>

在POM中定义的JarRunner

<plugin>
                                <artifactId>maven-assembly-plugin</artifactId>
                                <configuration>
                                        <appendAssemblyId>false</appendAssemblyId>
                                        <archive>
                                                <manifest>
                                                        <addClasspath>true</addClasspath>
                                                        <mainClass>runner.JarRunner</mainClass>
                                                </manifest>
                                        </archive>
                                        <descriptorRefs>
                                                <descriptorRef>jar-with-dependencies</descriptorRef>
                                        </descriptorRefs>
                                </configuration>
                        </plugin>

因此,如果我使用更新的胶水运行JarRunner,例如 胶= {“ company.name.prj.qa.run.steps_v2”} 在IntelliJ IDEA下一切正常。

如果使用了cmd mvn clean验证-Dtags =“” 一切都很好

如果我使用jar文件

  

错误:您可以使用下面的代码片段执行缺少的步骤(然后   我的测试步骤)

带有jar文件的目标文件夹包含子文件夹“ classes”。在此文件夹中,找到所有要素和所有stepDef类。

功能文件成功在此文件夹中检测到,但StepsDefinition-未检测到。

许多人尝试更换流道中的胶水: -胶水= {“ company.name.prj.qa.run.steps_v2”}

  • 胶水= {“ ./classes”}

  • 具有绝对路径的胶水

  • 胶水= {“ classpath:classes”}

  • 等...

没有帮助:StepsDefinition类未绑定...

0 个答案:

没有答案