Ich habe seit ein paar Tagen versucht, den folgenden Fehler zu beheben, aber ich kann ihn nicht beheben :(
Die pom.xml-Datei meines Moduls lautet:
<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>
<parent>
<artifactId>junitcategorizer</artifactId>
<groupId>com.topdesk.test.junitcategorizer</groupId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
<artifactId>junitcategorizer.instrument</artifactId>
<name>JUnitCategorizer InstrumentationAgent</name>
<description>The agent used to instrument the called Java classes</description>
<dependencies>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-commons</artifactId>
<version>4.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
</manifest>
<manifestEntries>
<Premain-Class>com.topdesk.junitcategorizer.instrument.InstrumentationAgent</Premain-Class>
<Agent-Class>com.topdesk.junitcategorizer.instrument.InstrumentationAgent</Agent-Class>
<Can-Redefine-Classes>true</Can-Redefine-Classes>
<Can-Retransform-Classes>true</Can-Retransform-Classes>
<Boot-Class-Path>${project.artifactId}-${project.version}.jar</Boot-Class-Path>
<Can-Set-Native-Method-Prefix>true</Can-Set-Native-Method-Prefix>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<artifactSet>
<includes>
<include>org.ow2.asm:*</include>
</includes>
</artifactSet>
<relocations>
<relocation>
<pattern>org.objectweb.asm</pattern>
<shadedPattern>org.shaded.asm</shadedPattern>
</relocation>
</relocations>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Ich erhalte folgende Fehlermeldung:
[ERROR] Failed to execute goal org.Apache.maven.plugins:maven-surefire-plugin:2.
12:test (default-test) on project junitcategorizer.instrument: There are test failures.
[ERROR]
[ERROR] Please refer to D:\Masters\thesis related papers and tools\junitcategorizer\junitcategorizer.instrument\target\surefire-reports for the individual test results.
[ERROR] -> [Help 1]
org.Apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.Apache.maven.plugins:maven-surefire-plugin:2.12:test (default-test) on project junitcategorizer.instrument: There are test failures.
Please refer to D:\Masters\thesis related papers and tools\junitcategorizer\junitcategorizer.instrument\target\surefire-reports for the individual test results.
at org.Apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.Java:212)
at org.Apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.Java:153)
at org.Apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.Java:145)
at org.Apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.Java:116)
at org.Apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.Java:80)
at org.Apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.Java:51)
at org.Apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.Java:120)
at org.Apache.maven.DefaultMaven.doExecute(DefaultMaven.Java:347)
at org.Apache.maven.DefaultMaven.execute(DefaultMaven.Java:154)
at org.Apache.maven.cli.MavenCli.execute(MavenCli.Java:582)
at org.Apache.maven.cli.MavenCli.doMain(MavenCli.Java:214)
at org.Apache.maven.cli.MavenCli.main(MavenCli.Java:158)
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:62)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
at Java.lang.reflect.Method.invoke(Method.Java:497)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.Java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.Java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.Java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.Java:356)
Caused by: org.Apache.maven.plugin.MojoFailureException: There are test failures.
Please refer to D:\Masters\thesis related papers and tools\junitcategorizer\junitcategorizer.instrument\target\surefire-reports for the individual test results.
at org.Apache.maven.plugin.surefire.SurefireHelper.reportExecution(SurefireHelper.Java:83)
at org.Apache.maven.plugin.surefire.SurefirePlugin.writeSummary(SurefirePlugin.Java:673)
at org.Apache.maven.plugin.surefire.SurefirePlugin.handleSummary(SurefirePlugin.Java:647)
at org.Apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked(AbstractSurefireMojo.Java:137)
at org.Apache.maven.plugin.surefire.AbstractSurefireMojo.execute(AbstractSurefireMojo.Java:98)
at org.Apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.Java:132)
at org.Apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.Java:208)
... 19 more
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
Ich habe folgendes versucht, aber nicht geholfen:
Bitte hilf mir!
Fügen Sie Ihrem Pom hinzu:
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
</plugin>
</plugins>
In Ihrem Fehlercode hat er surefire plugin
nicht gefunden, also fügen Sie ihn hinzu
Das löst das Problem:
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
from Fehler beim Ausführen von Ziel org.Apache.maven.plugins: maven-surefire-plugin: 2.10: test
War mehrmals mit demselben Problem konfrontiert und ich habe 2 Lösungen:
Lösung 1: Füge den todsicheren Plugin Verweis auf pom.xml hinzu. Pass auf, dass du alle Knoten hast! In meinen IDEs fehlte die Auto-Import-Version !!!
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M3</version>
</plugin>
</plugins>
Lösung 2: My IDE fügte falschen Import zum Anfang der Datei hinzu.
IDE hinzugefügt
import org.junit.Test;
Ich musste es mit ersetzen
import org.junit.jupiter.api.Test;
Probieren Sie es aus, es funktioniert!
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M3</version>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
<shutdown>kill</shutdown> <!-- Use it if required-->
</configuration>
</plugin>
Dies ist eine Art Testfehler. Die Annotation @SpringBootApplication enthält diese Konfigurationen.
1) @Configuration
2) @ComponentScan
3) @EnableAutoConfiguration
@EnableAutoConfiguration ist der Grund für diesen Fehler. Dadurch wird versucht, die Anwendung entsprechend den Abhängigkeiten in Ihrer pom.xml automatisch zu konfigurieren
Als Beispiel, wenn Sie eine Spring-data-jpa-Abhängigkeit in pom haben, wird versucht, der Anwendung eine Konfiguration hinzuzufügen, indem Sie in der Datei application.properties nach der Datenquelle suchen. Sie müssen also eine Datenquelle hinzufügen, um das Problem zu lösen.
Für MySQL:
spring.jpa.hibernate.ddl-auto=create
spring.datasource.url=jdbc:mysql://localhost/lahiru
spring.datasource.username=root
spring.datasource.password=
Oder
Sie können dies ausblenden, indem Sie die Tests überspringen.
mvn install -DskipTests
Für mehr Details .
Ich stand vor demselben Problem, Ihre Versionsnummern in der Abhängigkeit von Selenium, TestNG und Junit sollten die gleichen sein, die Sie in Ihrem Projekt verwendet haben. Beispielsweise verwenden Sie in Ihrem Projekt die Selenium-Version 3.8. Diese Versionsnummer sollte in der Abhängigkeit erwähnt werden.
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.0.0-beta1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.Selenium</groupId>
<artifactId>Selenium-Java</artifactId>
<version>3.8.1</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.8</version>
<scope>test</scope>
</dependency>
</dependencies>
Überprüfen Sie Ihre Testdateien. Sie müssen alle Fehler der Testdateien in Ihrem Projekt löschen und Clean und Build versuchen.
Ich bekomme genau das gleiche Stacktrace, wenn die Tests fehlschlagen Weiter oben sollten Sie Meldungen sehen, die die fehlerhaften Testklassen angeben
D:\Masters\thesis related papers and tools\junitcategorizer\junitcategorizer.instrument\target\surefire-reports
und werfen Sie einen Blick auf die Fehlerberichte . Beheben Sie die Probleme und Ihr Build ist in Ordnung.
Gute Nachrichten: Ihre Poms scheinen in Ordnung zu sein, Maven kann Tests zusammenstellen und ausführen.
Bereits 3 Jahre, aber das gleiche passierte mir und ich wollte mit meinem Fall beitragen. Mit der @nikk-Lösung habe ich bessere Ergebnisse erzielt, aber es sind immer noch andere Fehler aufgetreten, obwohl ich das Paketieren durfte.
Meine Aufgabe war es jedoch, den Code eines Mitarbeiters auf dem Server zu implementieren, und das passierte ihm in seiner Testumgebung nicht. Deshalb beschloss ich, etwas mehr zu untersuchen, da der Code funktionsfähig war und nichts mit mir zu tun hatte .
Am Ende stellte sich heraus, dass seine Anwendung MySQL-Tabellen in eine Datenbank einfügte, die es nicht gab. Die Lösung war so einfach wie das Erstellen einer solchen Datenbank und der Fehler verschwand.
Ändere die Versionsnummer auf 2.19.1 funktioniert bei mir :)
`<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<systemPropertyVariables>
<xmlOutputDir>${project.build.directory}/surefire</xmlOutputDir>
</systemPropertyVariables>
</configuration>
</plugin>`
Dieses Problem kann mit dem bereits ausgelasteten Port zusammenhängen. Todsichere laufen auf 5005 port. Sie müssen also sicherstellen, dass dieser Port frei ist. Wenn nicht, ändern Sie es oder beenden Sie den Prozess. Dies geschieht einige Zeit in Intellij.
Wenn Sie Ubuntu verwenden, versuchen Sie, MVN mit Sudo auszuführen. Ich habe den gleichen Fehler für
mvn -Dtest=PerfLatency#latencyTest test -X
Aber
Sudo mvn -Dtest=PerfLatency#latencyTest test -X
Mein Problem gelöst
HI All können Sie versuchen, das Folgende in Ihrem POM hinzuzufügen und dann mvn clean compile
und dann mvn install
zu verwenden.
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
Bei Version 3.0.0-M1 hat es für mich funktioniert.
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M1</version>
</plugin>
Möglicherweise müssen Sie es mit Sudo ausführen.
Fügen Sie einfach die folgende Zeile in der Datei pom.xml oben im <modelversion>
-Tag ein:
<repositories>
<repository>
<id>central</id>
<name>Central Repository</name>
<url>http://repo.maven.Apache.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
Ich hatte das gleiche Problem und wie ich es gelöst habe, siehe unten Schritte oder Bild: