2017-06-16 78 views
0

夥計們,如何在使用GRADLEW BUILD運行時在每個測試類之間放置H2數據庫?

請幫助我在下面入伍查詢 -

我正在使用H2數據庫的JUnit測試。 我正在測試註冊並登錄。所以,在這兩種情況下,我需要創建我在每個測試類的@BeforeClass中創建的用戶。現在,當我運行單個類測試用例時,它運行正常(原因是:它創建用戶執行測試用例並自從使用H2 DB以來自動刪除)。但是當我運行gradlew構建時,它在第一次測試之後就失敗了。它給我錯誤「data.helper.ErrorException:用戶標識必須是唯一的。」 任何幫助將被讚賞有關如何刪除每個類之間的數據庫。

謝謝

回答

0

您可以使用DbUnit的庫來處理在方便的方式你的問題。在測試用例之前填充數據庫並清除之後。見http://dbunit.sourceforge.net/howto.html。另外要注意創建H2數據庫配置字符串。數據庫必須活着直到jvm關閉。 jdbc:h2:mem:test;DB_CLOSE_DELAY=-1

0

您可以在截斷表的每個測試中添加@Before方法。這有助於避免單一測試課程中的測試副作用。

@Before 
public void truncateTables() { 
    //truncate tables 
} 
0

您應該使用@Before而不是@BeforeClass,以便在每個測試方法之前運行設置代碼,而不是整個類運行一次。您也可以添加@After方法在每種測試方法之後執行任何清理。

相關問題