[英]JUnit tests with h2 database behave strangely
我在一個使用JDBC連接到h2數據庫的maven項目中編寫了幾個JUnit測試類。 我有8個測試班。
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 -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.