报错Test cannot be resolved to a type

本文介绍了一种在使用MySql进行单元测试时遇到@Test报错的解决方法,通过移除JUnit3并保留JUnit4解决了该问题。

操作MySql运用@Test时:
报错Test cannot be resolved to a type

package com.why.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBCDemo2 {
    @Test
    public void add(){
        Connection conn = null;
        Statement stat = null;
        ResultSet rs = null;
        try{
            //1.注册数据库驱动
            Class.forName("com.mysql.jdbc.Driver");
            //2.获取连接
            conn = DriverManager.getConnection("jdbc:mysql:///day10","root","root");
            //3.获取传输对象
            stat = conn.createStatement();
            //4.执行sql语句
            int count = stat.executeUpdate("insert into user valuse (null,'zhaoliu','123456','zhaoliu@sina.com','1998-01-01')");
            //5.处理结果
            if(count>0){
                System.out.println("执行成功!影响到的行数为"+count);
            }else{
                System.out.println("执行失败!");
            }

        }catch (Exception e){
            e.printStackTrace();
        }finally{
            //6.关闭资源
            if(rs!=null){
                try{
                    rs.close();
                } catch (SQLException e){
                    e.printStackTrace();
                }finally{
                    rs = null;
                }
            }
            if(stat!=null){
                try{
                    stat.close();
                } catch (SQLException e){
                    e.printStackTrace();
                }finally{
                    stat = null;
                }
            }
            if(conn!=null){
                try{
                    conn.close();
                } catch (SQLException e){
                    e.printStackTrace();
                }finally{
                    conn = null;
                }
            }
        }
    }
}

在运用@Test时,报错Test cannot be resolved to a type
我首先想到的是没有导入包之类的东西,但是MyEclipse这么强大的东西,一个Alt+/ 竟然提示的不是要导入的包,所以应该是别的问题。
度娘了一下下,有的人也有类似问题,不过好像和我的不太一样
引用如下:
发现写 @Test 标签报错了,”Test cannot be resolved to a type”
原来是项目没有导入 JUnit 库,解决办法很简单
项目右键 -> Build Path -> Configure Build Path -> Libraries -> Add Library -> JUnit -> next -> finish

然后我就看了看我的,其实已经自动导入过JUnit3,然后我又看到了个JUnit4,想着导入进去说不定行。如图:这里写图片描述
发现还是不行。然后又去翻找大神的博客,发现了这样一个解决方法:
写了个单元测试,然后buildpath里add library选择了junit,然后出现了奇怪的现@Before、 @After可以用,@Test就会报错(“Test is not an annotation type”),搜索了下,解决方案如下,不需要引入 import org.junit.Test ,直接@org.junit.Test就可以了。

我一看,是不是可以呢?但是又觉得不行,感觉这个是导入包后出现错误,我现在的问题是没包可导入。我就想,是我的jar包没了还是jar包冲突?都有可能。
搜了好久之后也找不出解决方法,有解决jar包冲突的解决方法都是我不曾接触过的,如果瞎改岂不是gg?
然后我就抱着摸索试一试的心态想,刚刚导入JUnit的时候,有个3又有个4,我当时都导入进去了,4会不会覆盖3?3又会不会影响4?一开始没导入的时候只有3它是报错的,所以应该是3影响了4,所以我将3remove了,只留下4,哇!!!成功!!美滋滋!
注:大神说的@org.junit.Test和import org.junit.Test;这两种方法都可以!
这里写图片描述
这里写图片描述
记录下来,以后遇到此类问题看一下这里的多种解决方案,总会找到自己需要的。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值