我在 CentOS 上运行 Jenkins 1.478,使用 Java 6、Maven 3.0.4、JUnit 4.8.1(Maven 项目中的依赖项)和 Sonar 3.2.1。我有我的 Jenkins Maven 2/3 作业设置以在完成后运行声纳(设置目标为“clean package -Pdev”)。该项目是一个包含 WAR 和 EAR 模块的多模块项目。但是,当插件的 Sonar 部分运行时,许多测试会因以下错误而死掉……</p>
java.lang.NullPointerException
at java.util.Properties$LineReader.readLine(Properties.java:418)
at java.util.Properties.load0(Properties.java:337)
at java.util.Properties.load(Properties.java:325)
at org.parentco.myco.client.test.AbstractHibernateDaoTest.loadmyprojectProps(AbstractHibernateDaoTest.java:252)
at org.parentco.myco.client.test.AbstractHibernateDaoTest.setupMockEjbContainer(AbstractHibernateDaoTest.java:235)
at org.parentco.myco.client.test.AbstractHibernateDaoTest.setupBeforeClass(AbstractHibernateDaoTest.java:72)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
异常来自此代码块的最后一行...
final InputStream in = AbstractHibernateDaoTest.class.getClassLoader().getResourceAsStream("myproject.properties");
final Properties props = new Properties();
props.load(in);
测试在我工作的 Maven 部分完美运行。有问题的文件位于
./myclient-war/src/main/resources/myproject.properties
任何人都知道我可以如何进一步解决这个问题?我更愿意在 Sonar 中配置一些东西,而不是不得不重组我的整个项目以适应 Sonar,但我愿意接受建议。