Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Junit5中使用宁静?_Java_Junit_Junit5_Serenity Bdd_Junit Jupiter - Fatal编程技术网

Java 如何在Junit5中使用宁静?

Java 如何在Junit5中使用宁静?,java,junit,junit5,serenity-bdd,junit-jupiter,Java,Junit,Junit5,Serenity Bdd,Junit Jupiter,我正试图在我的maven项目中运行Serenity测试。我正在使用JUnitJupiter引擎5.3.1。(它位于父pom中。) 我有多重错误 是因为JUnit的版本还是其他原因? 我怎样才能解决它 我的测试班: @RunWith(SerenityRunner.class) public class MyTestClass { private static final String CHARACTER_ENCODING_UTF_8 = "UTF-8"; @Steps private ApiS

我正试图在我的maven项目中运行Serenity测试。我正在使用JUnitJupiter引擎5.3.1。(它位于父pom中。)

我有多重错误

是因为JUnit的版本还是其他原因? 我怎样才能解决它

我的测试班:

@RunWith(SerenityRunner.class)
public class MyTestClass {

private static final String CHARACTER_ENCODING_UTF_8 = "UTF-8";

@Steps
private ApiSteps apiSteps;


@Test
public void aTest() {

    try {
        String filePath = "initiatepayment/input.xml";

        Client client = Client.create();

        WebResource webResource = client
                .resource("https://jsonplaceholder.typicode.com/posts/42");

//            String input = new Scanner(MyTestClass.class.getClassLoader().getResourceAsStream(filePath), CHARACTER_ENCODING_UTF_8).useDelimiter("\\A").next();
        String input = "{\"address\": \"Budapest\"}";

        ClientResponse response = webResource.type("application/json")
                .get(ClientResponse.class);


        System.out.println(response.getStatus());

        System.out.println("Output from Server .... \n");
        String output = response.getEntity(String.class);
        System.out.println(output);

    } catch (Exception e) {

        e.printStackTrace();

    }
}

@Test
public void bTest() {
    apiSteps.sendGetRequest("https://jsonplaceholder.typicode.com/posts/42", WebResourceType.APPLICATION_XML);
    apiSteps.checkStatus(200);
}
}
我的孩子pom.xml的依赖项:

<properties>
    <serenity-junit.version>1.8.21</serenity-junit.version>
    <serenity.version>1.35.0</serenity.version>
    <jersey-client.version>1.19.4</jersey-client.version>
    <jersey-common.version>2.22.2</jersey-common.version>
</properties>

<dependencies>
    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-api</artifactId>
    </dependency>

    <!--Jersey-->
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-client</artifactId>
        <version>${jersey-client.version}</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.core</groupId>
        <artifactId>jersey-common</artifactId>
        <version>${jersey-common.version}</version>
        <scope>test</scope>
    </dependency>

    <!-- test -->
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-launcher</artifactId>
        <version>${version.junit-platform-launcher}</version>
        <scope>test</scope>
    </dependency>

    <!--Serenity-->
    <dependency>
        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-junit</artifactId>
        <version>${serenity-junit.version}</version>
    </dependency>
    <dependency>
        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-cucumber</artifactId>
        <version>${serenity.version}</version>
    </dependency>
    <dependency>
        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-jbehave</artifactId>
        <version>${serenity.version}</version>
    </dependency>

</dependencies>
和我的堆栈跟踪:

java.lang.Exception: No runnable methods

at org.junit.runners.BlockJUnit4ClassRunner.validateInstanceMethods(BlockJUnit4ClassRunner.java:191)
at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:128)
at org.junit.runners.ParentRunner.validate(ParentRunner.java:416)
at org.junit.runners.ParentRunner.<init>(ParentRunner.java:84)
at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:65)
at net.serenitybdd.junit.runners.SerenityRunner.<init>(SerenityRunner.java:160)
at net.serenitybdd.junit.runners.SerenityRunner.<init>(SerenityRunner.java:116)
at net.serenitybdd.junit.runners.SerenityRunner.<init>(SerenityRunner.java:100)

....

java.lang.NullPointerException
at com.khb.openapi.payment.web.bdd.MyTestClass.bTest(MyTestClass.java:55)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

....
java.lang.Exception:没有可运行的方法
位于org.junit.runners.BlockJUnit4ClassRunner.validateInstanceMethods(BlockJUnit4ClassRunner.java:191)
位于org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:128)
位于org.junit.runners.ParentRunner.validate(ParentRunner.java:416)
在org.junit.runners.ParentRunner上(ParentRunner.java:84)
位于org.junit.runners.BlockJUnit4ClassRunner。(BlockJUnit4ClassRunner.java:65)
位于net.serenitybdd.junit.runners.SerenityRunner。(SerenityRunner.java:160)
位于net.serenitybdd.junit.runners.SerenityRunner。(SerenityRunner.java:116)
位于net.serenitybdd.junit.runners.SerenityRunner。(SerenityRunner.java:100)
....
java.lang.NullPointerException
在com.khb.openapi.payment.web.bdd.MyTestClass.bTest(MyTestClass.java:55)上
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
....

谢谢大家!

不幸的是,基本JUnit 5不支持Serenity,所以我只能使用JUnit 5 Vintage。它可以运行JUnit4测试。它现在可以工作了。

您好,您的测试使用@RunWith,这在JUnit5中是不受支持的。再见,谢谢!我看看!
java.lang.Exception: No runnable methods

at org.junit.runners.BlockJUnit4ClassRunner.validateInstanceMethods(BlockJUnit4ClassRunner.java:191)
at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:128)
at org.junit.runners.ParentRunner.validate(ParentRunner.java:416)
at org.junit.runners.ParentRunner.<init>(ParentRunner.java:84)
at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:65)
at net.serenitybdd.junit.runners.SerenityRunner.<init>(SerenityRunner.java:160)
at net.serenitybdd.junit.runners.SerenityRunner.<init>(SerenityRunner.java:116)
at net.serenitybdd.junit.runners.SerenityRunner.<init>(SerenityRunner.java:100)

....

java.lang.NullPointerException
at com.khb.openapi.payment.web.bdd.MyTestClass.bTest(MyTestClass.java:55)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

....