Karate API Test läuft nicht durch . initializationError

pixelhead

Mitglied
Hallo zusammen,

ein ganz einfacher Karate Test aus diesem Tutorial (https://www.softwaretestinghelp.com/api-testing-with-karate-framework/) läuft nicht durch. Es passiert im Grunde nichts.

Ursprünglich hatte ich diesen Fehler:


... und habe nun eine neue Java Version eingerichtet. Die älteren Übungsprojekte laufen auch, damit sollte die Javaumgebung o.k. sein und es nicht daran liegen.

Nach "Run as -> JUnit Test" läuft der Karatetest nun gar nicht erst an, es kommt zu einem initializationError.

In Eclipse wird im Fenster zur "Failure Trace" etwas angezeigt. Siehe Screenshot unten.

Auf der Console in Eclipse kommt keine Meldung, alles weiß.

Umgebung:

Java:
Java Version:
openjdk version "16" 2021-03-16
OpenJDK Runtime Environment (build 16+36-2231)
OpenJDK 64-Bit Server VM (build 16+36-2231, mixed mode, sharing)

pom.xml, Dependencies:
pom xml dependencies:
<dependencies>
      
      <dependency>
         <groupId>com.intuit.karate</groupId>
         <artifactId>karate-apache</artifactId>
         <version>0.9.5</version>
         <scope>test</scope>
    </dependency>
    
    <dependency>
        <groupId>com.intuit.karate</groupId>
        <artifactId>karate-junit4</artifactId>
        <version>0.9.5</version>
        <scope>test</scope>
    </dependency>
 
  </dependencies>

Fehlen noch Angaben?

Eclipse_Fehlermeldung_Karate.jpg

Ich weiß jetzt nicht wo ich noch nachschauen kann nach Logs oder so, bisher ist mir nur das bekannt was ich hier angebe.

Danke und viele Grüße
 

kneitzel

Top Contributor
Versuch einfach erst einmal, eine aktuelle Version von karate zu nutzen. 0.9.5 ist von Anfang 2020 - aktuell ist 1.1.0.

Die Fehlermeldung sagt recht wenig aus. Wenn ich raten müsste, dann würde ich sagen: Das Tool setzt auf die JavaScript Engine Nashorn. Diese ist ab Java 11 deprecated gewesen und mit Java 15 ist sie entfernt worden. Sowas würde in aktuelleren Versionen bestimmt behoben - falls die neuen Java Versionen unterstützt werden. Falls Karate generell kein Java 16 unterstützt, musst du ggf. auf Java 11 zurück gehen. Aber wie gesagt: probiere erst einmal aktuelle Versionen aus, also 1.1.0 oder die noch neueren RC Versionen.
 

pixelhead

Mitglied
Danke schon mal für die Meldung.

Da stand auch was mit Nashorn. Siehe Screenshot unten.

Das ist ja als Maven Projekt angelegt und ich habe das mal als Maven Test laufen lassen. Dort kommt auch was in der Console:

Maven Test Durchlauf Fehlermeldung:
[INFO] Scanning for projects...
[INFO]
[INFO] --------------------< KarateTest:KarateTestSample >---------------------
[INFO] Building KarateTestSample 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ KarateTestSample ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ KarateTestSample ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ KarateTestSample ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ KarateTestSample ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!
[INFO] Compiling 1 source file to C:\4ma\software\Eclipse\eclipse_workspace\KarateTestSample\target\test-classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] Source option 5 is no longer supported. Use 7 or later.
[ERROR] Target option 5 is no longer supported. Use 7 or later.
[INFO] 2 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  2.223 s
[INFO] Finished at: 2021-09-20T15:16:41+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:testCompile (default-testCompile) on project KarateTestSample: Compilation failure: Compilation failure:
[ERROR] Source option 5 is no longer supported. Use 7 or later.
[ERROR] Target option 5 is no longer supported. Use 7 or later.
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

Ich werde die pom.xml entsprechend anpassen.

Hier die Meldung mit dem Nashorn Anteil:
karate_eclipse_nashorn.jpg
 

pixelhead

Mitglied
Es läuft immer noch nicht.

Ich habe die pom aktualisiert:
pom dependencies:
<dependencies>
     
      <dependency>
         <groupId>com.intuit.karate</groupId>
         <artifactId>karate-apache</artifactId>
         <version>0.9.5</version>
         <scope>test</scope>
    </dependency>

      <!-- https://mvnrepository.com/artifact/com.intuit.karate/karate-junit4 -->
    <dependency>
        <groupId>com.intuit.karate</groupId>
        <artifactId>karate-junit4</artifactId>
        <version>1.1.0</version>
        <scope>test</scope>
    </dependency>
     
  </dependencies>

Ich nutze "karate apache" (keine 1.1.0 dabei) und "karate junit4" (1.1.0 vorhanden).
Es gibt aber noch karate core" (mit 1.1.0).
Muss ich da etwas anpassen?

Run As -> Maven test Fehlermeldung:
maven test run Fehler:
[INFO] Scanning for projects...
[INFO]
[INFO] --------------------< KarateTest:KarateTestSample >---------------------
[INFO] Building KarateTestSample 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ KarateTestSample ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ KarateTestSample ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ KarateTestSample ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ KarateTestSample ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!
[INFO] Compiling 1 source file to C:\4ma\software\Eclipse\eclipse_workspace\KarateTestSample\target\test-classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] Source option 5 is no longer supported. Use 7 or later.
[ERROR] Target option 5 is no longer supported. Use 7 or later.
[INFO] 2 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  1.395 s
[INFO] Finished at: 2021-09-20T15:29:21+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:testCompile (default-testCompile) on project KarateTestSample: Compilation failure: Compilation failure:
[ERROR] Source option 5 is no longer supported. Use 7 or later.
[ERROR] Target option 5 is no longer supported. Use 7 or later.
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

Bei Run As - JUnit kommt diese Fehlermeldung in der Console:
run as junit Fehler:
Class not found TestRunner
java.lang.ClassNotFoundException: TestRunner
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:636)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClass(RemoteTestRunner.java:778)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClasses(RemoteTestRunner.java:502)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:525)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:768)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:464)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)

Die aus dem Tutorial benutzten Scripte sehen so aus:

userDetails.feature File:
feature file:
Feature: fetching User Details
Scenario: testing the get call for User Details
 
Given url 'https://reqres.in/api/users/2'
When method GET
Then status 200

Zugehörige TestRunner.java Datei:
testrunner java file:
import org.junit.runner.RunWith;
 
import com.intuit.karate.junit4.Karate;
 
@RunWith(Karate.class)
public class TestRunner {

}

Wie man merkt bin ich nicht in Java fit :) , aber es ist halt so wie im Tutorial und sieht ja auch ganz simpel aus. Wieso kommt da ein Class not found?
 

mrBrown

Super-Moderator
Mitarbeiter
Run As -> Maven test Fehlermeldung:
Die Fehlermeldung ist doch offensichtlich: ;)
Code:
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] Source option 5 is no longer supported. Use 7 or later.
[ERROR] Target option 5 is no longer supported. Use 7 or later.

Eclipse würde ich erstmal außen vor lassen, bis der Maven-Build läuft.
 
Zuletzt bearbeitet:

pixelhead

Mitglied
OK, danke. Ich habe mich wegen 7 statt 5 nach dieser Anleitung gerichtet:


Schritte:

Right-click Project properties >> Java compiler.
-> OK

Change the JDK compliance parameters from 1.5 -> 1.7 or above.
-> OK, nun auf 1.8

Click on the Execution Environments link and select the latest or suitable JDK above JDK 1.7
-> Finde ich nicht (in Eclipse)

Es bleibt beim Fehler:
7 statt 5 Fehler:
[ERROR] Source option 5 is no longer supported. Use 7 or later.
[ERROR] Target option 5 is no longer supported. Use 7 or later.
[INFO] 2 errors

Der letzte Schritt scheint zu fehlen. Ich finde es nicht.
 

kneitzel

Top Contributor
Und wenn Du so alte Versionen nutzen willst (Ich kenne karate-apache nicht - keine Ahnung, warum es davon keine neuen Versionen gibt), dann solltest Du evtl. auf einer älteren Java Version bleiben. Java 11 als LTS Version wäre da evtl. eine gute Lösung.

Und die einzelnen karate Abhängigkeiten würde ich auf einer Version halten, um eben keine Inkompatibilitäten zu bekommen. Also 0.9.6 ist die letzte Version von karate-apache.
 

pixelhead

Mitglied
Ja, danke. Das hatte ich auch gemacht.

Das will immer noch nicht so richtig ... Mit "Run As -> JUnit" kommt die Meldung, dass keine Class gefunden wird und bei

"Run As -> Maven Test" sieht die Meldung so aus:

maven test Meldung nach Config:
[INFO] Scanning for projects...
[INFO]
[INFO] --------------------< KarateTest:KarateTestSample >---------------------
[INFO] Building KarateTestSample 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ KarateTestSample ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ KarateTestSample ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ KarateTestSample ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ KarateTestSample ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!
[INFO] Compiling 1 source file to C:\4ma\software\Eclipse\eclipse_workspace\KarateTestSample\target\test-classes
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ KarateTestSample ---
[INFO] Surefire report directory: C:\4ma\software\Eclipse\eclipse_workspace\KarateTestSample\target\surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running TestRunner
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.122 sec <<< FAILURE!
initializationError(TestRunner)  Time elapsed: 0.006 sec  <<< ERROR!
java.lang.NoClassDefFoundError: com/intuit/karate/RuntimeHook
    at java.base/java.lang.ClassLoader.defineClass1(Native Method)
    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1010)
    at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
    at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:855)
    at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:753)
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:676)
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:634)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
    at com.intuit.karate.junit4.Karate.<init>(Karate.java:66)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:78)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
    at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104)
    at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70)
    at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:37)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70)
    at org.junit.internal.requests.ClassRequest.createRunner(ClassRequest.java:28)
    at org.junit.internal.requests.MemoizingRequest.getRunner(MemoizingRequest.java:19)
    at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:250)
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
    at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:567)
    at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
    at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
    at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
    at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
Caused by: java.lang.ClassNotFoundException: com.intuit.karate.RuntimeHook
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:636)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
    ... 34 more


Results :

Tests in error:
  initializationError(TestRunner): com/intuit/karate/RuntimeHook

Tests run: 1, Failures: 0, Errors: 1, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  2.543 s
[INFO] Finished at: 2021-09-20T16:36:43+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test (default-test) on project KarateTestSample: There are test failures.
[ERROR]
[ERROR] Please refer to C:\4ma\software\Eclipse\eclipse_workspace\KarateTestSample\target\surefire-reports for the individual test results.
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

Hier nochmal die pom.xml:

pom xml nach neuer Config:
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>KarateTest</groupId>
  <artifactId>KarateTestSample</artifactId>
  <version>0.0.1-SNAPSHOT</version>
 

    <properties>
       <maven.compiler.source>1.8</maven.compiler.source>
       <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
      
  <dependencies>
      
      <!-- https://mvnrepository.com/artifact/com.intuit.karate/karate-apache -->
    <dependency>
        <groupId>com.intuit.karate</groupId>
        <artifactId>karate-apache</artifactId>
        <version>0.9.6</version>
        <scope>test</scope>
    </dependency>

      <!-- https://mvnrepository.com/artifact/com.intuit.karate/karate-junit4 -->
    <dependency>
        <groupId>com.intuit.karate</groupId>
        <artifactId>karate-junit4</artifactId>
        <version>1.1.0</version>
        <scope>test</scope>
    </dependency>
      
  </dependencies>
 
</project>
 

pixelhead

Mitglied
Die Dependencies haben nun die gleichen Versionsnummern.

Java Compiler in Eclipse steht auf 1.5, in der pom.xml auf 1.8.

Es kommt immer noch zum Fehler: java.lang.ExceptionInInitializerError

Hier nochmal die zwei Miniscripte, pom.xml und Fehlermeldung:

Script 1, TestRunner.java:
TestRunner java Script:
import org.junit.runner.RunWith;
 
import com.intuit.karate.junit4.Karate;
 
@RunWith(Karate.class)
public class TestRunner {

}

Script 2, UserDetails.feature File:
User Details Feature File:
Feature: fetching User Details
Scenario: testing the get call for User Details
 
Given url 'https://reqres.in/api/users/2'
When method GET
Then status 200

pom.xml:
pom xml mit gleichen Versionsnummern in den Dependencies:
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>KarateTest</groupId>
  <artifactId>KarateTestSample</artifactId>
  <version>0.0.1-SNAPSHOT</version>
 

      <properties>
       <maven.compiler.source>1.8</maven.compiler.source>
       <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
 
  <dependencies>
     
      <!-- https://mvnrepository.com/artifact/com.intuit.karate/karate-apache -->
    <dependency>
        <groupId>com.intuit.karate</groupId>
        <artifactId>karate-apache</artifactId>
        <version>0.9.6</version>
        <scope>test</scope>
    </dependency>

      <!-- https://mvnrepository.com/artifact/com.intuit.karate/karate-junit4 -->
    <dependency>
        <groupId>com.intuit.karate</groupId>
        <artifactId>karate-junit4</artifactId>
        <version>0.9.6</version>
        <scope>test</scope>
    </dependency>
     
  </dependencies>
 
</project>

Fehlermeldung nach Maven Test Lauf:
Maven Test Fehlermeldung:
[INFO] Scanning for projects...
[INFO]
[INFO] --------------------< KarateTest:KarateTestSample >---------------------
[INFO] Building KarateTestSample 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ KarateTestSample ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ KarateTestSample ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ KarateTestSample ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ KarateTestSample ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ KarateTestSample ---
[INFO] Surefire report directory: C:\4ma\software\Eclipse\eclipse_workspace\KarateTestSample\target\surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running TestRunner
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.566 sec <<< FAILURE!
initializationError(TestRunner)  Time elapsed: 0.005 sec  <<< ERROR!
java.lang.ExceptionInInitializerError
    at com.intuit.karate.junit4.Karate.<init>(Karate.java:81)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:78)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
    at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104)
    at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
    at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
    at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33)
    at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:250)
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
    at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:567)
    at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
    at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
    at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
    at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
Caused by: java.lang.NullPointerException: Cannot invoke "javax.script.ScriptEngine.createBindings()" because "com.intuit.karate.ScriptBindings.NASHORN" is null
    at com.intuit.karate.ScriptBindings.createBindings(ScriptBindings.java:160)
    at com.intuit.karate.core.Tags.<init>(Tags.java:158)
    at com.intuit.karate.core.Tags.<clinit>(Tags.java:48)
    ... 24 more


Results :

Tests in error:
  initializationError(TestRunner)

Tests run: 1, Failures: 0, Errors: 1, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  2.716 s
[INFO] Finished at: 2021-09-21T10:56:01+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test (default-test) on project KarateTestSample: There are test failures.
[ERROR]
[ERROR] Please refer to C:\4ma\software\Eclipse\eclipse_workspace\KarateTestSample\target\surefire-reports for the individual test results.
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

Es will einfach nicht klappen.
 

kneitzel

Top Contributor
Was für ein Java JDK nutzt Du denn? Nutzt Du immer noch Java 16?

Die Informationen, die gegeben wurden, sind weiterhin gültig:
Wenn ich raten müsste, dann würde ich sagen: Das Tool setzt auf die JavaScript Engine Nashorn. Diese ist ab Java 11 deprecated gewesen und mit Java 15 ist sie entfernt worden. Sowas würde in aktuelleren Versionen bestimmt behoben - falls die neuen Java Versionen unterstützt werden. Falls Karate generell kein Java 16 unterstützt, musst du ggf. auf Java 11 zurück gehen.
 

pixelhead

Mitglied
Habe eben gerade auf die JDK 11 geändert. Jetzt läuft es fehlerfrei in Maven durch, aber ...

java -version :
Java Version 11:
openjdk version "11" 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)

javac -version :
javac 11:
javac 11

... bei "Run As -> Junit Test" landet nichts in der Reportdatei (/target/surefire-reports/karate-summary.html). Da steht 0/0.
Kein Testergebnis wird angezeigt.
Ursprünglich, als es wegen meiner Konfiguration die ganzen Fehlermeldungen gab, wurde der Report erstellt, nur halt mit einer Fehlermeldung.

Es kommt aber nirgends zu Fehlermeldungen.

"Run As -> Maven Test" Durchlauf:
Maven Test Lauf OK:
[INFO] Scanning for projects...
[INFO]
[INFO] --------------------< KarateTest:KarateTestSample >---------------------
[INFO] Building KarateTestSample 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ KarateTestSample ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ KarateTestSample ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ KarateTestSample ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ KarateTestSample ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!
[INFO] Compiling 1 source file to C:\4ma\software\Eclipse\eclipse_workspace\KarateTestSample\target\test-classes
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ KarateTestSample ---
[INFO] Surefire report directory: C:\4ma\software\Eclipse\eclipse_workspace\KarateTestSample\target\surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running TestRunner
Warning: Nashorn engine is planned to be removed from a future JDK release

HTML report: (paste into browser to view) | Karate version: 0.9.6
file:/C:/4ma/software/Eclipse/eclipse_workspace/KarateTestSample/target/surefire-reports/karate-summary.html
===================================================================

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.979 sec

Results :

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  3.312 s
[INFO] Finished at: 2021-09-21T11:27:49+02:00
[INFO] ------------------------------------------------------------------------

Dieser Hinweis kommt auch schön in rot:
"Warning: Nashorn engine is planned to be removed from a future JDK release"

Es läuft, aber nicht richtig. Komisch.
 
Zuletzt bearbeitet:

kneitzel

Top Contributor
Er startet die Tests aber er findet keine Tests. Sicher, dass Du Tests hast und dass diese richtig heißen und so?

Die Warnung ist eine Warnung und die kannst Du ignorieren. Die besagt ja nur, was Du selbst schon aktiv erlebt hast: Mit Java 15+ wird es nicht mehr funktionieren!
 

pixelhead

Mitglied
Das was ich habe steht weiter oben als Script 1 und Script 2. So stehts im Tutorial. Im Feature File also der Test. Mit dem TestRunner wirds gestartet. Dieser Test wurde ja auch als fehlerhaft im zweiten Schritt angezeigt wegend er Javaprobleme. Nur jetzt wird halt ... nichts angezeigt.

Das ist in dieser Datei:
file:///C:/PfadZumOrdner/KarateTestSample/target/surefire-reports/karate-summary.html

Siehe Screenshot.

karate_keine_Tests.jpg
 

kneitzel

Top Contributor
Ich sehe da erst einmal nur, dass Du da den TestRunner hast. Der wird ja auch gestartet. Aber ich sehe in dem Bildschirmfoto #17 jetzt nicht die Tests.

Ich habe aber gerade wirklich Probleme nachzuvollziehen, was Du da gerade genau machst / probierst. Du bist offensichtlich ganz neu in der Thematik - An was versuchst Du Dich entlang zu hangeln?

Der Startpunkt sollte doch eigentlich etwas sein wie https://github.com/intuit/karate

Da findet sich dann die Dokumentation und man kann loslegen - z.B. direkt beim Maven - und hat dann auch direkt ein aktuelles Karate mit junit5:
Code:
<dependency>
    <groupId>com.intuit.karate</groupId>
    <artifactId>karate-junit5</artifactId>
    <version>1.1.0</version>
    <scope>test</scope>
</dependency>

Und dann hat man auch direkt ein Beispiel mit JUnit 5: https://github.com/intuit/karate#junit-5
==> Test Klasse mit mehreren Karate.Test.

Ich vermute, dass Du verschiedene Dinge parallel betrachtest, die alle nicht zusammen passen und Du daher massiv aufgeschmissen bist. Das geht in keiner Weise gegen Dich sondern ist einfach ein Problem der schnellen Entwicklung. Viele Anleitungen und Blog Beiträge sind ja auch weiterhin verfügbar.

Falls dieser Eindruck richtig ist, wäre es evtl. gut, den Ansatz noch einmal zu durchdenken und von Grund auf sauber zu starten.
 

mrBrown

Super-Moderator
Mitarbeiter
Dieser Test wurde ja auch als fehlerhaft im zweiten Schritt angezeigt wegend er Javaprobleme. Nur jetzt wird halt ... nichts angezeigt.
Wo wurde der Tests als fehlschlagend angezeigt? Tests konnten bisher einfach noch nie gestartet werden, das kam nie zu dem Punkt, das die Karate-Tests versucht wurden auszuführen.

So sieht die Projektstruktur aus:
default-package ist immer schlecht, das _kann_ für sowas verantwortlich sein.
 

pixelhead

Mitglied
Ja, bin sehr neu in der Thematik:)

Bei mir sah der Report fast so aus wie im Tutorial ganz unten beim Punkt "Following HTML Report will be shown to you depicting Scenarios & Test that has been executed for the mentioned scenario:":
Nur das bei mir "test 2: When method GET" rot und damit als fehlerhaft angezeigt war. Ich konnte das aufklappen und die FehlermeldungsException kam im Detail. Jetzt kommt nichts mehr. Ich mache nichts anderes als im Tutorial.
 

kneitzel

Top Contributor
Also was mir beim ersten Überfliegen auffällt: Bei Deinem Maven-Projekt fehlt das
Code:
<build>
       <testResources>
            <testResource>
                   <directory>src/test/java</directory>
                   <excludes>
                            <exclude>**/*.java</exclude>
                    </excludes>
             </testResource>
        </testResources>
        <plugins>
        ...
        </plugins>
</build>

Eine mögliche Alternative könnte sein, die feature Datei in src/test/resources zu legen.

Und in dem Beispiel /Tutorial liegt es nicht in dem default package. Prizipiell kann das problematisch sein, wie @mrBrown schon sagte.
 

pixelhead

Mitglied
Oh, das ist mir aber unangenehm ...

Mit dem Eintrag in pom.xml gehts! Den Schritt im Tutorial habe ich nicht gemacht.

Jetzt wird alles angezeigt wie es sein soll.

Das default package ist bei mir unverändert so wie im Screenshot zur Projektstruktur.

DANKE!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Junit surefire: enrich test information Allgemeine Java-Themen 0
Gaudimagspam White-Box-Test /Glas Box Test Allgemeine Java-Themen 2
F Junit Test + Cucumber - JSON auslesen und in einem weiteren Schritt nutzen Allgemeine Java-Themen 0
M Test geht auf Travis und mit Github Action schief aber nicht lokal Allgemeine Java-Themen 3
S Test mit Werten aus der .properties Allgemeine Java-Themen 4
T Weighted QuickUnion Test Allgemeine Java-Themen 5
S Zugriff auf jUnit Test Suite Runner-Instanzen innerhalb von Test Classes Allgemeine Java-Themen 7
S Eclipse Probleme beim Implementieren / Ausführen von jUnit 5-Test Suites Allgemeine Java-Themen 14
S Parametrisierte jUnit 5-Tests mit eigenen Datentypen/Klassen-Objekten als Test-Parameter Allgemeine Java-Themen 0
S Eclipse TestNG Default Test umbenennen Allgemeine Java-Themen 0
F UI Test auf Jenkins Allgemeine Java-Themen 1
looparda Unit Test - Abgänigkeit zur Datenbank isolieren Allgemeine Java-Themen 3
K Test-Frist Programmierung - wie vorgehen Allgemeine Java-Themen 5
E JUnit wie Testergebnisse pro Test ("Test Report") erhalten? Allgemeine Java-Themen 1
R Test Umgebung für Datenbank erstellen, was braucht es? Allgemeine Java-Themen 14
R Unit Test Allgemeine Java-Themen 1
M JUnit Test Suites Allgemeine Java-Themen 2
B Hilfe bei JUnit Test Allgemeine Java-Themen 1
E YQL Api Test - NullPointer Allgemeine Java-Themen 9
B JUnit4 Exception-Test Allgemeine Java-Themen 4
A eine test thread.join() frage Allgemeine Java-Themen 2
P Klassen Junit test funktioniert nicht... Allgemeine Java-Themen 11
W Frage zu Klassendesign und Test mit Mockito Allgemeine Java-Themen 5
G JUnit Test Methoden in anderen Thread verlagern Allgemeine Java-Themen 4
J JUnit, TestCase vs "einfacher" Test Allgemeine Java-Themen 3
1 JUnit Test Suit Allgemeine Java-Themen 2
B Test$1.class mit dem javac compiler Allgemeine Java-Themen 7
G Input/Output System.in "umbiegen" für junit-Test Allgemeine Java-Themen 4
K Unit Test consolen ein-/ausgaben. Allgemeine Java-Themen 7
DEvent Test JNI Allgemeine Java-Themen 4
S Theorie hinter Shape intersects Test..? Allgemeine Java-Themen 5
fastjack jUnit und Test von equals, hashCode, toString Allgemeine Java-Themen 11
D junit - frage zu fixtures/test suites Allgemeine Java-Themen 11
G JUnit Test Allgemeine Java-Themen 5
K Test-Code in Java-Klassen verstecken (wie mit Precompiler möglich) Allgemeine Java-Themen 10
J GUI Test Allgemeine Java-Themen 4
G Implementierung vom AKS-Test Allgemeine Java-Themen 11
N ClassNotFound Exception bei JUnit Test? Allgemeine Java-Themen 2
GilbertGrape Warum schlägt JUnit-Test fehl? Allgemeine Java-Themen 19
K Bekomme JUnit TEst nicht zum laufen :( Allgemeine Java-Themen 9
G Ant: <test/> Allgemeine Java-Themen 2
F Kasiski-Test in BlueJ Allgemeine Java-Themen 4
H Java Multiplicoice Test (Part 2) Allgemeine Java-Themen 5
H Java Multiplicoice Test (10 Fragen) Allgemeine Java-Themen 11
F Test für Localization Allgemeine Java-Themen 6
B JUnit - Gleichen Test x-mal durchlaufen Allgemeine Java-Themen 2
H References to generic type Test.A<typ> should be param Allgemeine Java-Themen 5
N Performance-Test (Geschwindigkeit von Methoden vergleichen)? Allgemeine Java-Themen 4
S Performance Test mit JMeter Allgemeine Java-Themen 2
B httpunit test Allgemeine Java-Themen 6
S HTTPUnit Test Fehler: Error on HTTP request: 500 Internal Er Allgemeine Java-Themen 9
M Test eines Programmes Allgemeine Java-Themen 4
B Primzahlen test Allgemeine Java-Themen 3
D Twitch API mit HttpURLConnection läuft nicht? Allgemeine Java-Themen 0
T PDF-Generierung (itext) - läuft unter Eclipse, bei har aber leere Seite Allgemeine Java-Themen 39
S Korrekte Pfadangaben damit eine .jar Datei unter Windwos läuft. Allgemeine Java-Themen 24
E JavaFX RMI extrem langsam wenn Server nicht läuft Allgemeine Java-Themen 5
H Alter Java-Programm läuft nicht mehr. Laut strace fehlt libpthread.so.0 Allgemeine Java-Themen 3
itwestnet Mein Java-Programm läuft nicht in China Allgemeine Java-Themen 4
P Anwendung läuft nur mit JDK Allgemeine Java-Themen 2
L Prog läuft in der IDE, hängt sich aber am Mac auf Allgemeine Java-Themen 0
M Code läuft unter windows aber nicht unter Linux Allgemeine Java-Themen 6
C Anwendung läuft nicht auf Mac OS X Allgemeine Java-Themen 2
D Programm läuft fehlerhaft, finde den Fehler nicht Allgemeine Java-Themen 6
X Applet läuft nicht, Applet in Webseite einbinden Allgemeine Java-Themen 4
A runnable jar läuft mur auf einem pc1 und nicht auf pc2 Allgemeine Java-Themen 6
R Thread läuft nicht?! Allgemeine Java-Themen 7
T Jar File läuft unter Windows aber nicht unter linux Allgemeine Java-Themen 10
B Methode läuft nicht unter UNIX Allgemeine Java-Themen 6
Bastie Selbstcompiliertes läuft nicht Allgemeine Java-Themen 8
W Java Applet läuft langsam Allgemeine Java-Themen 2
D Java läuft nicht richtig Allgemeine Java-Themen 12
D Api mit eine Methode die "immer" läuft bis "stop" "gerufen wird. Allgemeine Java-Themen 25
D Spielerwechsel über boolsche Werte läuft inkorrekt Allgemeine Java-Themen 6
F Eclipse JAVAMAIL läuft nur unter Eclipste Applet Viewer Allgemeine Java-Themen 4
C Programm das im Hintergrund läuft Allgemeine Java-Themen 2
N Scanner läuft nicht durch Allgemeine Java-Themen 2
T Gewährleisten das Applikation läuft!? Allgemeine Java-Themen 2
N Fehler abfang läuft doppelt durch Allgemeine Java-Themen 2
H Labels erstellen während Programm läuft Allgemeine Java-Themen 3
S Zeichen, dass Programm noch läuft Allgemeine Java-Themen 3
K [erledigt] JVM welche läuft Allgemeine Java-Themen 9
B Programm läuft unter Linux, aber nicht unter Windows Allgemeine Java-Themen 3
T Währungsrechner läuft nicht Allgemeine Java-Themen 11
V JAR-File läuft unter Windows und Linux, aber nicht unter OSX Allgemeine Java-Themen 6
J 2 Threads - aber nur einer läuft wirklich. Allgemeine Java-Themen 3
P läuft java 1.6 mit win me und 98 Allgemeine Java-Themen 4
G Läuft nicht unter Linux oO Allgemeine Java-Themen 10
M JVM Non-Heap läuft voll Allgemeine Java-Themen 4
L Java app läuft under win xp, automatisch auch unter vista32 Allgemeine Java-Themen 14
C externes Programm läuft erst nach schließen des mainprogramm Allgemeine Java-Themen 7
M Zeit läuft rückwärts Allgemeine Java-Themen 3
M Programm beendet - Thread läuft weiter Allgemeine Java-Themen 11
R Mein Applet läuft in der IDE aber nicht. Allgemeine Java-Themen 2
BFreakout Hilfe! Java Anwendung läuft nicht. Allgemeine Java-Themen 8
S Prozess javaw.exe läuft immer noch, obwohl Programm beendet Allgemeine Java-Themen 6
G überpüfen ob bereits instanz von java applikation läuft Allgemeine Java-Themen 4
I VM läuft nicht Allgemeine Java-Themen 2
C Enumeration läuft von hinten durch Allgemeine Java-Themen 4
S Mit javamail kompiliertes Programm läuft nicht ohne jar's Allgemeine Java-Themen 6

Ähnliche Java Themen


Oben