Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.17:test failed: The forked VM terminated without properly saying goodbye. VM crash or System.exit called?

infrastructure
reporting
allure
Теги: #<Tag:0x00007fedbb81a820> #<Tag:0x00007fedbb81a690> #<Tag:0x00007fedbb81a4b0>

(heartwilltell) #1

Пытаюсь запустить тест стандартной командой mvn clean test site
Получаю такой результат:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.17:test (default-test) on project  Testproject: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.17:test failed: The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
[ERROR] Command was /bin/sh -c cd /Users/heartwilltell/Documents/Java/Projects/Testproject && /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/jre/bin/java -javaagent:/Users/heartwilltell/.m2/repository/org/aspectj/aspectjweaver/1.8.2/aspectjweaver-1.8.2.jar -jar /Users/heartwilltell/Documents/Java/Projects/Testproject/target/surefire/surefirebooter1214417557626858936.jar /Users/heartwilltell/Documents/Java/Projects/Testproject/target/surefire/surefire4304238176113115631tmp /Users/heartwilltell/Documents/Java/Projects/Testproject/target/surefire/surefire_05395149474182303851tmp

Через IDE запускается нормально

pox.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>heartwilltell.testproject</groupId>
    <artifactId>testproject</artifactId>
    <version>1.0-SNAPSHOT</version>

    <name>Testproject</name>

    <properties>
        <compiler.version>1.8</compiler.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <allure.version>1.4.0</allure.version>
        <aspectj.version>1.8.2</aspectj.version>
        <webdriver.driver>firefox</webdriver.driver>
    </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
        </dependency>

        <dependency>
            <groupId>ru.yandex.qatools.allure</groupId>
            <artifactId>allure-junit-adaptor</artifactId>
            <version>${allure.version}</version>
        </dependency>

        <dependency>
            <groupId>ru.yandex.qatools.allure</groupId>
            <artifactId>allure-report-data</artifactId>
            <version>${allure.version}</version>
        </dependency>

        <dependency>
            <groupId>ru.yandex.qatools.allure</groupId>
            <artifactId>allure-maven-plugin</artifactId>
            <version>2.0</version>
        </dependency>

        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>${aspectj.version}</version>
        </dependency>

        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-server</artifactId>
            <version>2.43.0</version>
        </dependency>

        <dependency>
            <groupId>ru.stqa.selenium</groupId>
            <artifactId>webdriver-factory</artifactId>
            <version>1.1.43</version>
        </dependency>

        <dependency>
            <groupId>ru.yandex.qatools.htmlelements</groupId>
            <artifactId>htmlelements-java</artifactId>
            <version>1.11</version>
        </dependency>

        <dependency>
            <groupId>com.codeborne</groupId>
            <artifactId>selenide</artifactId>
            <version>2.12</version>
        </dependency>

        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>17.0</version>
        </dependency>
    </dependencies>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-archetype-plugin</artifactId>
                    <version>2.2</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.1</version>
                    <configuration>
                        <source>${compiler.version}</source>
                        <target>${compiler.version}</target>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.17</version>
                    <configuration>
                        <testFailureIgnore>false</testFailureIgnore>
                        <argLine>
                            -javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar
                        </argLine>
                        <properties>
                            <property>
                                <name>listener</name>
                                <value>ru.yandex.qatools.allure.junit.AllureRunListener</value>
                            </property>
                        </properties>
                        <parallel>classes</parallel>
                        <threadCount>2</threadCount>
                        <systemPropertyVariables>
                            <webdriver.driver>${webdriver.driver}</webdriver.driver>
                        </systemPropertyVariables>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <groupId>org.aspectj</groupId>
                            <artifactId>aspectjweaver</artifactId>
                            <version>1.8.2</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>3.4</version>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

    <reporting>
        <excludeDefaults>true</excludeDefaults>
        <plugins>
            <plugin>
                <groupId>ru.yandex.qatools.allure</groupId>
                <artifactId>allure-maven-plugin</artifactId>
                <version>2.0</version>
                <configuration>
                    <resultsPattern>**/allure-results</resultsPattern>
                </configuration>
            </plugin>
        </plugins>
    </reporting>

</project>

(sidelnikovmike) #2

А просто mvn clean install и mvn test работают?


(heartwilltell) #3

нет :frowning:


(sidelnikovmike) #4

А если аллюр вообще отключить(убрать из пома)?


(sidelnikovmike) #5

А вы нигде в тестах не вызываете System.exit()? :smile:


(heartwilltell) #6

Если убрать все использование allure то все тесты проходят замечательно :frowning:


(sidelnikovmike) #7

ну тогда попробуем призвать @vania_pooh


(vania-pooh) #8

Возможно проблема связана с AspectJ. В версиях до 1.4.1 использовался AspectJ 1.7.x. У вас используется Allure 1.4.0 и AspectJ 1.8.2, не уверен насчет совместимости. Еще интересно бы знать версию Maven.


(heartwilltell) #9

3.2.1

До обновления селениума на 2.43.0 - все работало с Allure 1.4.0 и AspectJ 1.8.2


(vania-pooh) #10

Свежий. У меня какой-то такой же.


(heartwilltell) #11

Окей дайте кто-то pom.xml с работающего проекта с версией selenium 2.43.0


(heartwilltell) #12

Я нашел причину. Все дело вот в этой зависимости:

<dependency>
      <groupId>ru.stqa.selenium</groupId>
      <artifactId>webdriver-factory</artifactId>
     <version>1.1.43</version>
</dependency>

Я использовал фабрику драверов Баранцева, очевидно она вызывает конфликт.
Возможно @barancev у вас есть совет по этому поводу?

Есть класс

public abstract class BaseTest {

    public static WebDriver driver;

    @ClassRule
    public static TestRule classWatcher = new TestWatcher() {

        @Override
        protected void starting(Description description) {
            super.starting(description);
            driver = WebDriverFactory.getDriver(DesiredCapabilities.firefox());
        }

        @Override
        protected void finished(Description description) {
            super.finished(description);
            WebDriverFactory.dismissAll();
        }
    };

    @Rule
    public TestRule watcher = new TestWatcher() {
        @Override
        protected void starting(Description description) {
            super.starting(description);
        }

        @Override
        protected void finished(Description description) {
            super.finished(description);
        }
    };
}

От него наследуются классы с тестами

Драйвер создается, так как описано у Вас в статье http://selenium2.ru/articles/112-webdriverfactory.html


(barancev) #13

Конфликт чего с чем?


(heartwilltell) #14

Если подключить вашу библиотеку в проект созданный по такому примеру:

При попытке выполнить mvn clean test получим:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.17:test (default-test) on project  Testproject: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.17:test failed: The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
[ERROR] Command was /bin/sh -c cd /Users/heartwilltell/Documents/Java/Projects/Testproject && /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/jre/bin/java -javaagent:/Users/heartwilltell/.m2/repository/org/aspectj/aspectjweaver/1.8.2/aspectjweaver-1.8.2.jar -jar /Users/heartwilltell/Documents/Java/Projects/Testproject/target/surefire/surefirebooter1214417557626858936.jar /Users/heartwilltell/Documents/Java/Projects/Testproject/target/surefire/surefire4304238176113115631tmp /Users/heartwilltell/Documents/Java/Projects/Testproject/target/surefire/surefire_05395149474182303851tmp

(barancev) #15

Ну да, логично, потому что это пример для JUnit, а фабрика тащит с собой зависимость от TestNG. Надо бы убрать её оттуда, сделать для примеров отдельный проект, для самой фабрики, понятное дело, TestNG не нужен.

Ну а чтобы устранить конфликт достаточно просто исключить ненужную зависимость:

<dependency>
    <groupId>ru.stqa.selenium</groupId>
    <artifactId>webdriver-factory</artifactId>
    <version>1.1.43</version>
    <exclusions>
        <exclusion>
          <groupId>org.testng</groupId>
          <artifactId>testng</artifactId>
        </exclusion>
    </exclusions>
</dependency>

(сорри, с первой попытки код не отформатировался, пришлось дописать строчку, чтобы редактор разрешил сохранить правку)


(heartwilltell) #16

О, спасибо за столь оперативный ответ :slight_smile: Все заработало.


(Development Temp Vika) #17

Добрый день. Взяла пример:https://github.com/allure-examples/allure-junit-example20
Вот мой pom.xml:

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.version>4.1.5.RELEASE</spring.version>

<aspectj.version>1.8.9</aspectj.version>
<compiler.version>1.7</compiler.version>

<dependencies>
    <!--for Cucumber-->
    <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.7.1</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/info.cukes/cucumber-java -->
    <dependency>
        <groupId>info.cukes</groupId>
        <artifactId>cucumber-java</artifactId>
        <version>1.2.5</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/info.cukes/cucumber-junit -->
    <dependency>
        <groupId>info.cukes</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>1.2.5</version>
        <scope>test</scope>
    </dependency>

    <!-- https://mvnrepository.com/artifact/junit/junit -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
    <!--for Cucumber-->
    <!--for Selenium,JUnit-->
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.8.1</version>
    </dependency>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
    </dependency>

    <!--for annotation @ContextConfiguration-->
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>5.0.3.RELEASE</version>
        <scope>test</scope>
    </dependency>
    <!--for Selenium,JUnit-->
    <!--for Allure Report-->
    <dependency>
        <groupId>io.qameta.allure</groupId>
        <artifactId>allure-junit4</artifactId>
        <version>2.0-BETA13</version>
    </dependency>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-api</artifactId>
        <version>5.1.0-RC1</version>
    </dependency>
    <!--for Allure Report-->
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.3</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <!--for Allure Report-->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.19.1</version>
            <configuration>
                <argLine>
                    -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
                </argLine>
                <properties>
                    <property>
                        <name>listener</name>
                        <value>io.qameta.allure.junit4.AllureJunit4</value>
                    </property>
                </properties>
                <systemProperties>
                    <property>
                        <name>allure.results.directory</name>
                        <value>${project.build.directory}/allure-results</value>
                    </property>
                    <property>
                        <name>allure.link.issue.pattern</name>
                        <value>https://example.org/issue/{}</value>
                    </property>
                </systemProperties>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>org.aspectj</groupId>
                    <artifactId>aspectjweaver</artifactId>
                    <version>${aspectj.version}</version>
                </dependency>
            </dependencies>
        </plugin>
        <plugin>
            <groupId>io.qameta.allure</groupId>
            <artifactId>allure-maven</artifactId>
            <version>2.8</version>
        </plugin>
    </plugins>
</build>

Однако при выполнении команды:mvn clean test
Вот такая ошибка: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test (default-test) on project SpringJUnitCucumberTemp12: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test failed: There was an error in the forked process

Помогите пожалуйста исправить проблему. Я не понимаю, что не так.


(Fiodar Motin) #18

Убираем второй junit и пробуем добавить вот это для разрешения конфликта спринга и зависимостей селениума

		<dependency>
			<groupId>org.seleniumhq.selenium</groupId>
			<artifactId>selenium-support</artifactId>
			<version>3.8.1</version>
		</dependency>
		<dependency>
			<groupId>org.seleniumhq.selenium</groupId>
			<artifactId>selenium-api</artifactId>
			<version>3.8.1</version>
		</dependency>

(Development Temp Vika) #19
<dependencies>
    <!--for Cucumber-->
    <dependency>
        <groupId>info.cukes</groupId>
        <artifactId>cucumber-java</artifactId>
        <version>1.2.5</version>
    </dependency>

    <dependency>
        <groupId>info.cukes</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>1.2.5</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
    <!--for Cucumber-->
    <!--for Selenium,JUnit-->
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.8.1</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
    </dependency>

    <!--for annotation @ContextConfiguration-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>5.0.3.RELEASE</version>
        <scope>test</scope>
    </dependency>
    <!--for Selenium,JUnit-->
    <!--for Allure Report-->
    <dependency>
        <groupId>io.qameta.allure</groupId>
        <artifactId>allure-junit4</artifactId>
        <version>2.0-BETA13</version>
    </dependency>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-api</artifactId>
        <version>5.1.0-RC1</version>
    </dependency>
    <!--for Allure Report-->
    <!--для разрешения конфликта Spring и Seleniuum-->
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-support</artifactId>
        <version>3.8.1</version>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-api</artifactId>
        <version>3.8.1</version>
    </dependency>
    <!--для разрешения конфликта Spring и Seleniuum-->
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.3</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <!--for Allure Report-->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.19.1</version>
            <configuration>
                <argLine>
                    -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
                </argLine>
                <properties>
                    <property>
                        <name>listener</name>
                        <value>io.qameta.allure.junit4.AllureJunit4</value>
                    </property>
                </properties>
                <systemProperties>
                    <property>
                        <name>allure.results.directory</name>
                        <value>${project.build.directory}/allure-results</value>
                    </property>
                    <property>
                        <name>allure.link.issue.pattern</name>
                        <value>https://example.org/issue/{}</value>
                    </property>
                </systemProperties>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>org.aspectj</groupId>
                    <artifactId>aspectjweaver</artifactId>
                    <version>${aspectj.version}</version>
                </dependency>
            </dependencies>
        </plugin>
        <plugin>
            <groupId>io.qameta.allure</groupId>
            <artifactId>allure-maven</artifactId>
            <version>2.8</version>
        </plugin>
    </plugins>
</build>

1.Убрала второй JUnit, это я не заметила, прошу прощения.
2.Вот новый pom.xml:

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.version>4.1.5.RELEASE</spring.version>

<aspectj.version>1.8.9</aspectj.version>
<compiler.version>1.7</compiler.version>

<dependencies>
    <!--for Cucumber-->
    <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.7.1</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/info.cukes/cucumber-java -->
    <dependency>
        <groupId>info.cukes</groupId>
        <artifactId>cucumber-java</artifactId>
        <version>1.2.5</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/info.cukes/cucumber-junit -->
    <dependency>
        <groupId>info.cukes</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>1.2.5</version>
        <scope>test</scope>
    </dependency>

    <!-- https://mvnrepository.com/artifact/junit/junit -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
    <!--for Cucumber-->
    <!--for Selenium,JUnit-->
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.8.1</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
    </dependency>

    <!--for annotation @ContextConfiguration-->
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>5.0.3.RELEASE</version>
        <scope>test</scope>
    </dependency>
    <!--for Selenium,JUnit-->
    <!--for Allure Report-->
    <dependency>
        <groupId>io.qameta.allure</groupId>
        <artifactId>allure-junit4</artifactId>
        <version>2.0-BETA13</version>
    </dependency>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-api</artifactId>
        <version>5.1.0-RC1</version>
    </dependency>
    <!--for Allure Report-->
    <!--для разрешения конфликта Spring и Seleniuum-->
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-support</artifactId>
        <version>3.8.1</version>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-api</artifactId>
        <version>3.8.1</version>
    </dependency>
    <!--для разрешения конфликта Spring и Seleniuum-->
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.3</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <!--for Allure Report-->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.19.1</version>
            <configuration>
                <argLine>
                    -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
                </argLine>
                <properties>
                    <property>
                        <name>listener</name>
                        <value>io.qameta.allure.junit4.AllureJunit4</value>
                    </property>
                </properties>
                <systemProperties>
                    <property>
                        <name>allure.results.directory</name>
                        <value>${project.build.directory}/allure-results</value>
                    </property>
                    <property>
                        <name>allure.link.issue.pattern</name>
                        <value>https://example.org/issue/{}</value>
                    </property>
                </systemProperties>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>org.aspectj</groupId>
                    <artifactId>aspectjweaver</artifactId>
                    <version>${aspectj.version}</version>
                </dependency>
            </dependencies>
        </plugin>
        <plugin>
            <groupId>io.qameta.allure</groupId>
            <artifactId>allure-maven</artifactId>
            <version>2.8</version>
        </plugin>
    </plugins>
</build>

Но ошибка осталась:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test (default-test) on project SpringJUnitCucumberTemp12: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test failed: There was an error in the forked process
Не пойму что не так. Сделала ведь как в примере.Помогите пожалуйста исправить проблему. Я не понимаю, что не так.