Search code examples
karatejunit5

After Karate 1.3.1 update, Karate.run method isn't working


I updated my Karate version 1.3.0.RC2 to 1.3.1. Then I ran my tests in runner file, but I am getting an error. Before the update, it worked normally.

BaseTest.java

package features;

import com.intuit.karate.junit5.Karate;
import java.util.*;

public class BaseTest {

    @Karate.Test
    Karate Money() {
        return Karate.run("Money").relativeTo(getClass());
    }

}

Error:

org.junit.platform.commons.JUnitException: @TestFactory method [com.intuit.karate.junit5.Karate features.BaseTest.Money()] 
      must return a single org.junit.jupiter.api.DynamicNode or a Stream, Collection, Iterable, Iterator, or array of
      org.junit.jupiter.api.DynamicNode.at org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.invalidReturnTypeException(TestFactoryTestDescriptor.java:133)
    at org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.lambda$invokeTestMethod$1(TestFactoryTestDescriptor.java:110)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.invokeTestMethod(TestFactoryTestDescriptor.java:93)
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:131)
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:65)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129)
    at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)`

I didn't find any solution. Is that a bug or feature ?


Solution

  • I understand you just updated the karate-core version. Besides, if you update the karate-junit5 version, your problem will be solved.

    <dependencies>
    
        <dependency>
            <groupId>com.intuit.karate</groupId>
            <artifactId>karate-core</artifactId>
            <version>1.4.0</version>
        </dependency>
    
        <dependency>
            <groupId>com.intuit.karate</groupId>
            <artifactId>karate-junit5</artifactId>
            <version>1.4.0</version>
        </dependency>
    
    </dependencies>