2014-12-05 72 views
0

我是maven的新手。我正在運行我的命令提示符下的測試。這些測試生成一個數據庫。我的問題是,在測試完成後,數據被刪除。 我想維護生成的數據庫以便稍後使用它。有沒有辦法在maven中做到這一點? 這是我通過命令提示符下運行:運行maven測試後防止數據被刪除

 mvn -Dtest=TestDynamicLayers test 

我看到這裏有一個類似的問題,但它並沒有解決我的問題: Prevent data from being deleted after test run with Hibernate/Spring/Maven/MySQL

感謝 季米特里斯

回答

1

我不會我們不希望從測試中刪除數據成爲Maven行爲,這通常會在測試中的「拆卸」步驟中發生,或者您鏈接的線程通過@Transactional測試的自動回滾建議。

假設測試運行,在您的示例中,TestDynamicLayers.java是唯一正在執行的測試,因此數據刪除可能是某個測試方法或「之後」步驟之一。例如如果使用JUnit註釋,則拆解將在@AfterTest註釋的方法中預期。

通常我會建議不要使用通常在Maven構建的測試階段運行的測試來產生副作用,因爲這意味着多個測試執行可能會有不同的結果。由於這個原因,在測試執行之後刪除測試數據是可取的。就個人而言,我會走得更遠,並使用內存數據庫進行單元測試。

我建議你爲要保留的數據提取數據創建代碼,並通過用main()方法包裝來執行測試。如果您希望數據也是由測試創建的,則可以調用相同的代碼,保留當前不需要的數據刪除並直接使用java調用數據創建-classpath