2009-12-23 42 views
1

我正在使用與數據庫交互的Castle ActiveRecord進行一些單元測試。我有一個刪除數據庫的過程(如果存在的話),然後重新創建它,然後在每個測試中與它進行交互。如何關閉或「uninitialize」Castle ActiveRecord?

如果我運行一個測試,這工作正常。

如果我運行多個測試,第二個失敗,因爲它不能刪除數據庫。

Castle ActiveRecord中是否有某種方式告訴它關閉並釋放數據庫?

回答

3

我建議刪除並重新創建模式,而不是刪除整個數據庫

要刪除模式:ActiveRecordStarter.DropSchema();

創建模式:ActiveRecordStarter.CreateSchema();

要重新初始化的ActiveRecord:ActiveRecordStarter.ResetInitializationFlag();然後重新配置。

有關指導,請參閱base AR test class

對於測試,我建議看看新的InMemoryTest

另見:docs for ActiveRecord unit-testing

+0

這似乎很好地工作。我改變了我的例程,只創建數據庫,如果它不存在,並且在CreateSchema之前調用DropSchema。現在我的測試依次順利運行。 – 2009-12-23 14:50:06

+0

另外,基礎測試類在哪裏?我無法在2.0下載中找到它;它從那以後被添加了? (我想我總是可以添加我自己的版本)。我會用什麼InMemoryTest? – 2009-12-23 16:17:55

+0

該基礎測試類用於內部ActiveRecord測試,您不會在庫本身中看到它,但您可以將其複製。 – 2009-12-23 21:43:46