我正在測試一個控制器,該控制器返回一個json響應,但測試 第一次失敗,因爲h2數據庫沒有重置 自動增量ID。 手動使用燈具或創建對象具有相同的問題。重置h2中的自動增量
@Before
public void setUp() {
Fixtures.deleteAllModels();
Fixtures.loadModels("data.yaml");
}
如何解決這個問題?
我正在測試一個控制器,該控制器返回一個json響應,但測試 第一次失敗,因爲h2數據庫沒有重置 自動增量ID。 手動使用燈具或創建對象具有相同的問題。重置h2中的自動增量
@Before
public void setUp() {
Fixtures.deleteAllModels();
Fixtures.loadModels("data.yaml");
}
如何解決這個問題?
啓動Google Play應用程式,以這樣的URL火起來的瀏覽器(如果您運行在本地播放應用程序):
http://localhost:9000/@db
輸入您的H2數據庫,然後鍵入以下命令,然後運行:
ALTER TABLE <table_name> ALTER COLUMN <column_name> RESTART WITH 1
如果您想以編程方式做到這一點,Fixtures.executeSQL()
可能是有用的
欲瞭解更多信息,請http://www.h2database.com/html/grammar.html#alter_table_alter
如果使用的是春天,我發現這個blog post這表明使用@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD)
使每個測試使用新的應用程序環境,從而復位分貝增量。