gpt4 book ai didi

java - Eclipse 在运行 Spring JUnit 时抛出 java.lang.NullPointerException

转载 作者:IT老高 更新时间:2023-10-28 13:52:51 30 4
gpt4 key购买 nike

当我运行我的 junit 测试时,控制台打印这个 Excpetion:

java.lang.NullPointerException
at org.eclipse.jdt.internal.junit4.runner.SubForestFilter.shouldRun(SubForestFilter.java:81)
at org.junit.internal.runners.JUnit4ClassRunner.filter(JUnit4ClassRunner.java:110)
at org.junit.runner.manipulation.Filter.apply(Filter.java:47)
at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:34)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createFilteredTest(JUnit4TestLoader.java:77)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:68)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:43)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:444)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

还有像这样的 Base 测试对象

import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.transaction.TransactionConfiguration;
import org.springframework.transaction.annotation.Transactional;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
"classpath*:config/spring/appcontext-*.xml",
"classpath*:config/sqlmap/*.xml"
})
@TransactionConfiguration(defaultRollback = false)
@Transactional
public abstract class AbstractTestObject {
static {
//DOMConfigurator.configure("target/classes/log/log4j.xml");
}
}

JUnit 方法是这样的:

public class StaffInfoServiceImplTest extends AbstractTestObject{
@Autowired
StaffInfoServiceImpl service;

@Test
public void insertTest() {
StaffInfo bo = new StaffInfo();
bo.setEmail("a@b.com");
bo.setEntId(1);
bo.setEntStaffNum("000XXXX");
bo.setName("julia");
bo.setPhone("00000000");
bo.setSerialNum("SD12233KSRONDU189342ND");
bo.setSuperior(2321);
bo.setDepartment("Sale");
bo.setSingleCredit(BigDecimal.valueOf(100));
bo.setMonthlyCredit(BigDecimal.valueOf(10000));
SLTContext c = new SLTContext();
c.setOperator("0000001");
service.insertStaffInfo(bo, c);
}
}

我的项目是Java EE项目,使用maven管理lib,使用spring管理bean。

我的开发环境是:
Mac OS X Yosetime 10.10.4
面向 Web 开发人员的 Eclipse Java EE IDE(版本:Mars Release (4.5.0))
Maven 插件(从 Eclipse 安装->安装新软件)

我猜这是eclipse junit和project junit config之间的冲突,但我不确定。

如何解决这个问题,谢谢。

最佳答案

在执行(单个)JUnit 测试时,在 Eclipse Mars 上遇到了相同的 NPE。

我尝试创建一个全新的工作区并添加了一些测试类 + 测试方法,但使用了 Eclipse Mars(版本 4.12)附带的 JUnit 库。有了这个库,我可以在 Mars 中执行所有测试。

在我使用旧版本的 JUnit 之前遇到问题的其他工作区/项目中。

我认为这个旧的 JUnit 版本有问题,必须升级到新版本。

关于java - Eclipse 在运行 Spring JUnit 时抛出 java.lang.NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31469417/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com