Исполняемый кувшин для спокойствия с огурцом. Ошибка: «Вы можете реализовать пропущенные шаги с помощью фрагментов ниже» - PullRequest
0 голосов
/ 21 октября 2019

У меня есть: - Огурец с безмятежностью - Java / Junit - плагин maven-assembly-*

net.serenity-bdd: 2.0.81 плагин maven-assembly: 3.1.1

Мне нужно подготовить исполняемый файл JAR для запуска тестов с аннотацией, например: @jartest

Файлы проекта, расположенные в scr-> test

  • Файлы функций: src-> resources-> 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>

JarRunner, определенный в POM

<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 с обновленным клеем, например glue = {"company.name.prj.qa.run.steps_v2"} подIntelliJ IDEA все в порядке.

Если используется cmd mvn clean verify -Dtags = "" все в порядке

Если я использую файл jar

Ошибка: вы можете реализовать отсутствующиешаги с фрагментами ниже (затем шаги моего теста)

Целевая папка с файлом jar содержит подпапку: "classes". В этой папке расположены все функции и все классы stepsDef.

Файлы объектов успешно обнаруживаются в этой папке, но StepsDefinition - нет.

Было много попыток сменить клей в бегуне: - glue = {"company.name.prj.qa.run.steps_v2"}

  • glue = {". / классы "}

  • клей с абсолютным путем

  • клей = {" classpath: classes "}

  • и т.д ...

Ничего не поделаешь: класс StepsDefinition не привязан ...

...