2012-05-03 87 views
0

在NHibernate中,我打開show_sql來運行單元測試。我的每個單元測試都會清除數據庫並重新填充它,這導致大量的SQL查詢,我不希望NHibernate輸出。以編程方式設置show_sql而不重新創建SessionFactory?

是否有可能控制show_sql不破壞SessionFactory?如果可能,我想在運行測試設置時將其關閉,然後在測試主體開始運行時再次打開它。

這可能嗎?

回答

1

唯一你可以設置的地方是當建立一個NHibernate.Cfg.Configuration。 一旦你從你的Configuration創建SessionFactory,有沒有辦法來訪問的配置設置,我認爲這是原因,使用工廠模式之一:確保一旦實例成功構建不能運行搞砸重新配置或錯誤配置。

如果你真的需要這個功能,獲得NH源代碼,並發現其中show_sql設置已評估的地方。

1

另一種選擇,雖然它可能/可能不會像好是使用NHProf和測試時,只是初始化NHProf。

NHProf不記錄設置/清除數據庫只是使用查詢。

相關問題