Eclipse lève une exception java.lang.NullPointerException lors de l’exécution de Spring JUnit

Lorsque j’exécute mon test Junit, la console affiche cette excuse:

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) 

Et l’object de test de base comme celui-ci

 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"); } } 

Et la méthode JUnit comme ceci:

 public class StaffInfoServiceImplTest extends AbstractTestObject{ @Autowired StaffInfoServiceImpl service; @Test public void insertTest() { StaffInfo bo = new StaffInfo(); bo.setEmail("[email protected]"); 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); } } 

Mon projet est un projet Java EE, utilisant maven pour gérer lib, et utilisant des haricots spring manage.

Mon environnement de développement est:
Mac OS X Yosetime 10.10.4
Eclipse Java EE IDE pour les développeurs Web (Version: Mars Release (4.5.0))
Plugin Maven (installer depuis Eclipse -> Installer un nouveau logiciel)

Je suppose que ceci est un conflit entre Eclipse Junit et Project Junit Config, mais je ne suis pas sûr.

Comment résoudre le problème, merci.

Entré sur le même NPE sur Eclipse Mars lors de l’exécution de tests (uniques) JUnit.

J’ai essayé de créer un nouvel espace de travail et ajouté quelques classes de test + méthodes de test, mais j’ai utilisé la bibliothèque JUnit fournie avec Eclipse Mars (version 4.12). Avec cette bibliothèque, je pourrais exécuter tous les tests depuis Mars.

Dans l’autre espace de travail / projet où j’ai eu le problème avant d’utiliser une version plus ancienne de JUnit.

Je pense que cette ancienne version de JUnit est le problème, il faudra passer à une version plus récente.

Oui. J’ai soulevé un bogue contre Eclipse et ils m’ont conseillé de changer ma dépendance en une version plus récente de JUnit.

Je suis passé de JUnit 4.4 à JUnit 4.9 et tout a recommencé à fonctionner.

Faire ceci:

 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("file:src/main/webapp/WEB-INF/applicationContext.xml") @WebAppConfiguration public class StaffInfoServiceImplTest { ..Your Code.. }