首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >maven测试失败,指针为空,但junit 5正常

maven测试失败,指针为空,但junit 5正常
EN

Stack Overflow用户
提问于 2021-01-08 17:05:04
回答 1查看 93关注 0票数 0

我在使用Junit 5进行maven测试时遇到了一个奇怪的问题。

我用junit工具为每个方法创建了测试套件,每个测试都是这样开始的。

代码语言:javascript
复制
private Class2Test createTestSubject() {
        return new Class2Test();
    }

    public void test1() throws Exception {
        Class2Test testSubject;
        String result;

        // default test
        testSubject = createTestSubject();
        result = testSubject.getData();
        //testing, assert
}

result = testSubject.getData();行返回一个NullPointerException

当我通过eclipse执行相同的测试时,完成ok。定义了surefire插件

代码语言:javascript
复制
        <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>3.0.0-M5</version>
        <dependencies>
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-engine</artifactId>
                <version>5.7.0</version>
            </dependency>                
        </dependencies>
        <configuration>
                <systemPropertyVariables>
                    <entorno>${project.basedir}\resources\maqueta.properties</entorno>
                    <hibernate>${project.basedir}\resources\hibernate.cfg.xml</hibernate>
                </systemPropertyVariables>
                <parallel>classes</parallel>
                <threadCount>10</threadCount>
            </configuration>
    </plugin>

我曾试图更改对象的声明,使其成为空指针的子句,但失败了。

Class2Test()是默认的构造函数,不需要参数或读取文件。

代码语言:javascript
复制
package test.com.my.myself;

import static org.junit.jupiter.api.Assertions.assertAll;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;

import javax.annotation.Generated;

import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.junit.tools.configuration.base.MethodRef;
import com.my.myself.Class2Test;
import com.google.gson.Gson;


import junitparams.JUnitParamsRunner;

@Generated(value = "org.junit-tools-1.1.0")
@RunWith(JUnitParamsRunner.class)
public class Tester1{


    private Class2Test createTestSubject() {
        return new Class2Test();
    }

    @DisplayName("TEST1")
    @MethodRef(name = "test1", signature = "()QString;")
    @Test
    public void test1() throws Exception {
        Class2Test testSubject;
        String result;

        // default test
        testSubject = createTestSubject();
        result = testSubject.test1();
    }
}

和要测试的类

代码语言:javascript
复制
public class Class2Test{

    private Connection conn = new Connector();
    private static final Logger logger = Logger.getLogger(Class2Test.class);
    
    public String test1() {
         PrepareStatement pstm = conn.prepareStatement("select 1 from dual");
         ResultSet rs = pstm.executeQuery();
         ...

         return 1;
        }
}
EN

回答 1

Stack Overflow用户

发布于 2021-08-30 06:58:07

pom.xml出现问题,资源文件夹设置错误。:(

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65626102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档