如何創建一個新的數據庫(每次)測試從架構文件運行之前?如何創建一個新的數據庫測試運行之前?
回答
可以使用的SchemaExport類NHibernate的做這個代碼:
var schema = new SchemaExport(config);
schema.Drop(true, true);
schema.Execute(true, true, false);
'schema.Drop(真,真)'是不是必要的,因爲執行永遠滴創建前 – Firo 2012-05-02 09:26:56
刪除整個數據庫 - 不要通過表中刪除表 - ,增加了過多的維護開銷
我的意思programaticly :) – 2009-08-19 14:18:15
我已經使用以下工具方法運行SQL腳本在一個項目中建立數據庫和測試數據,我我現在正在和每一個人一起工作。它一直相當好:
internal static void RunScriptFile(SqlConnection conn, string fileName)
{
long fileSize = 0;
using (FileStream stream = File.OpenRead(fileName))
{
fileSize = stream.Length;
using (StreamReader reader = new StreamReader(stream))
{
StringBuilder sb = new StringBuilder();
string line = string.Empty;
while (!reader.EndOfStream)
{
line = reader.ReadLine();
if (string.Compare(line.Trim(), "GO", StringComparison.InvariantCultureIgnoreCase) == 0)
{
RunCommand(conn, sb.ToString());
sb.Length = 0;
}
else
{
sb.AppendLine(line);
}
}
}
}
}
private static void RunCommand(SqlConnection connection, string commandString)
{
using (SqlCommand command = new SqlCommand(commandString, connection))
{
try
{
command.ExecuteNonQuery();
}
catch (Exception ex)
{
Console.WriteLine(string.Format("Exception while executing statement: {0}", commandString));
Console.WriteLine(ex.ToString());
}
}
}
我已經使用了Database Publishing Wizard生成SQL腳本(在某些情況下編輯他們只包括我要在測試中使用的數據),而只是通過腳本文件路徑進行測試前的RunScriptFile
方法。該方法解析腳本文件並執行由GO
線單獨分開的每個部分(我發現,這在運行SQL腳本發生錯誤的故障排除極大的幫助)。
我已經有一段時間,因爲我寫的代碼,但我認爲它需要的腳本文件,以便一GO
線爲它的最後部分結束執行。
看一看這些職位。
Ayende Rahien - nhibernate-unit-testing
斯科特MUC - unit-testing-domain-persistence-with-ndbunit-nhibernate-and-sqlite
我發現他們是非常有用的,基本上他們是由邁克·格倫延長例如
我用變形桿菌(單元測試實用程序),可在谷歌代碼在這裏:
http://code.google.com/p/proteusproject/
您創建的一組數據。每一次,你運行一個單元測試時,保存當前數據,該組數據被加載,那麼你使用同一組數據,讓您的測試的所有時間。最後,原始數據被恢復。
非常強大
HTH
- 1. 如何爲每個測試運行重新創建一個數據庫?
- 2. 如何在Spring的每個測試之前重新創建數據庫?
- 3. 在運行測試之前在Django中創建數據庫條目
- 4. 在運行JUnit測試之前重置mysql數據庫
- 5. 在運行摩卡測試之前刪除MongoDB數據庫
- 6. 如何在'測試'之前運行「包」
- 7. 如何在每次測試之前讓Rails測試數據庫重建?
- 8. C#測試項目在測試運行前擦除數據庫
- 9. 使用JOOQ創建一個數據庫進行測試
- 10. 如何創建一個單元測試,更新記錄到數據庫在asp.net
- 11. 爲什麼Django要求我創建一個mysql數據庫來運行測試?
- 12. 創建一個新的Maven目標來運行測試茉莉
- 13. 與遺留數據庫測試django應用程序 - 如何避免每個測試重新創建數據庫?
- 14. JUnit Test Runner在運行它們之前創建測試
- 15. 單元測試運行.sql腳本到SQL創建數據庫
- 16. 在運行量角器e2e測試之前將數據插入數據庫
- 17. TFS2010團隊建設 - 如何之前運行單元測試
- 18. 如何針對測試數據庫運行Selenium測試?
- 19. 插入之前的數據庫創建
- 20. Django單元測試無需每次運行時創建測試數據庫
- 21. pydev和eclipse在運行測試時確實創建了測試數據庫
- 22. JUnit和集成測試 - 是否可以在運行任何測試之前運行一個測試
- 23. 如何在運行時創建一個測試套件現在
- 24. 對MongoDB數據庫中的測試數據運行node.js測試
- 25. 如何在運行R#測試運行器之前用Babel翻譯JS測試?
- 26. 爲什麼我的測試數據庫在運行rails測試之前和之後都是空的?
- 27. 在任何其他測試之前運行的Symfony測試?
- 28. TestManagementHttpClient創建測試運行
- 29. 安裝Rails之前的測試運行
- 30. 如何使用每個MSTest單元測試運行的新數據庫實例
不管有沒有NHibernate的? 你與NHibernate標記,但在問題沒有提到它 – Paco 2009-08-19 17:55:58
是如果可能的話 – 2009-08-19 20:42:15