簡體   English   中英

具有H2數據庫的JUnit測試的行為異常

[英]JUnit tests with h2 database behave strangely

我在一個使用JDBC連接到h2數據庫的maven項目中編寫了幾個JUnit測試類。 我有8個測試班。

  • 當我使用IntelliJ運行All tests時,出現JDBC錯誤(在最后一個測試類上: WorkspaceTest.java ):

org.h2.jdbc.JdbcSQLException: Table "WORKSPACE" not found; SQL statement:

(如果您想要完整的跟蹤信息,我會放它,但是有點長)。

注意 :所有其他7個測試類均已通過。

  • 當我使用IntelliJ分別運行每個測試時,它們全部通過了1的測試。

  • 當我使用mvn clean install運行測試時,出現構建失敗,並顯示錯誤(在最后一個測試類上: OWSContextTest.java ):

update(org.orbisgis.server.mapcatalog.OWSContextTest): Table "FOLDER" not found; SQL statement:

注意 :所有其他7個測試類均已通過。

  • 當我單獨使用mvn( mvn -Dtest=OWSContextTest test )運行此測試時,該測試通過。

測試類應該是獨立的,因為在每個類中,我都有一個@BeforeClass來刪除數據庫,然后創建它,最后填充它,以及一個@AfterClass來刪除數據庫。

如果您還有其他需要,我會進行編輯。 我真的不知道這種行為的原因。

謝謝你的幫助。

編輯:我剛剛在IntelliJ上運行了大約10次All tests ,它工作了大約6次,並以相同的錯誤失敗了4次。 不知道我是否真的可以信任智能測試機制。

EDIT2:如果有幫助,我嘗試了更多嘗試:我在8個測試類中總共運行了7個,對於所有8個類(我一起運行1 2 3 4 5 6 7,然后一起運行2 3 4 5 6 7 8,然后。 ..)他們都通過了(8個中的7個都組合)

如果使用@BeforeClass刪除數據庫並重新創建數據庫,是否可以正常工作? 也許一個測試的@AfterClass在另一個測試的@BeforeClass之后執行,因為它花費的時間比您預期的要多。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM