我在CentOS上運行Jenkins 1.478,使用Java 6,Maven 3.0.4,JUnit 4.8.1(Maven項目中的依賴項)和Sonar 3.2.1。我有我的Jenkins Maven 2/3作業設置完成後運行Sonar(設置目標爲「clean package -Pdev」)。該項目是一個帶WAR和EAR模塊的多模塊項目。然而,該插件的聲納部分運行時,許多測試的模具中包含錯誤...爲什麼測試在我的Jenkins-Sonar插件中失敗,但在Jenkins-Maven運行期間沒有失敗?
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,但我願意提供建議。
您是否嘗試過從計算機運行聲納插件?您應該能夠從命令行傳遞配置,而不必更改pom。 – Augusto
您可以在作業屬性'sonar.verbose = true'中爲聲納指定一個調試標誌。檢查是否提供了更多信息。 – eis