2015-09-22 135 views
0

爲什麼在Spring應用程序上下文中運行失敗的測試會導致我的Jenkins構建崩潰?關閉Spring ApplicationContext時Jenkins構建失敗

我正在使用Ant構建我的應用程序並在Jenkins上運行JUnit測試。

我在Eclipse中運行Ant構建時沒有遇到任何問題,有或沒有失敗的測試。

然而,當我嘗試運行與詹金斯的打造,建立一個沒有當它已經完成運行JUnit測試記錄異常失敗:

... 
[junit] INFO: Executing Stored Procedure with parameters {@pivoting=1, @ignoreReference=0} 
[junit] Tests run: 7, Failures: 1, Errors: 0, Time elapsed: 7.831 sec 
[junit] Sep 22, 2015 4:23:57 PM org.springframework.context.support.AbstractApplicationContext doClose 
[junit] INFO: Closing [email protected]590d1: 
    startup date [Tue Sep 22 16:23:52 BST 2015]; root of context hierarchy 

BUILD FAILED 
E:\Jenkins\jobs\workspace\AntBuilds\build.xml:336: Tests failed 

Total time: 16 seconds 
Build step 'Invoke Ant' marked build as failure 
Archiving artifacts 
Recording test results 
Finished: FAILURE 

上面的輸出是意想不到的,因爲我已經配置瞭如果測試失敗,則構建爲簡單不穩定,並且在運行測試後,我已經配置了JaCoCo報告以發佈。

通常我會看到更多的東西一樣:

[junit] INFO: Closing [email protected]38e598: display name [[email protected]38e598]; startup date [Tue Sep 22 16:01:10 BST 2015]; root of context hierarchy 
    [junit] Tests FAILED 
[jacoco:report] Loading execution data file E:\Jenkins\jobs\jacoco.exec 
[jacoco:report] Writing bundle 'Coverage Report' with 117 classes 
...etc 

刪除失敗的測試允許建立正常繼續:

BUILD SUCCESSFUL 
Total time: 36 seconds 
Archiving artifacts 
Recording test results 
[JaCoCo plugin] Collecting JaCoCo coverage data... 
[JaCoCo plugin] **/**.exec;**/dist/WEB-INF/classes;**/src; locations are configured 
[JaCoCo plugin] Number of found exec files for pattern **/**.exec: 1 
[JaCoCo plugin] Saving matched execfiles: E:\Jenkins\jobs\myJob\jacoco.exec 
... etc 

我的答案至今

我有已成功在Jenkins上構建其他應用程序。不同的是,這些測試都打上了Spring應用程序上下文:

@ContextConfiguration(locations="file:WEB-INF/MyJob-servlet.xml") 
@RunWith(SpringJUnit4ClassRunner.class) 

如果詹金斯失敗只是「BUILD之前關閉應用程序上下文時測試失敗,因爲這條線出現故障的構建我一直想知道失敗」的消息:

Closing [email protected]590d1: 
    startup date [Tue Sep 22 16:23:52 BST 2015]; root of context hierarchy 

我都需要升級到:

  • 的JUnit 4.4
  • 小號pring-integration-test-2.1.3.RELEASE

這個預感是否正確?如果是這樣,這是Jenkins/Spring /不兼容版本的錯誤,還是我的實現不正確?

+0

我的build.xml文件相當廣泛,所以我只會發布它,如果它實際上是必要的 –

回答

0

如果測試失敗,那麼Jenkins在默認情況下會失敗。構建的穩定性是通過最近有多少構建失敗來計算的。所以如果失敗的測試不會導致你的構建失敗,那麼測試對穩定性沒有影響,然後你就不能做電子郵件這樣的東西,構建失敗了,什麼提交導致了它,什麼測試失敗了,這是什麼非常有用。