我正在對數據庫運行一些集成測試。我想用種子數據設置數據庫,運行我的測試,然後刪除每個測試的數據庫(因此每個測試都有一個新的標準)。我目前使用這些安裝/拆卸方法做到這一點:集成測試數據庫重建性能
private ProjectDbContext db;
[TestInitialize]
public void SetUp()
{
db = new ProjectDbContext("TestConnection");
(new SeedData()).Run(db); //Seed Data
}
[TestCleanup]
public void Teardown()
{
db.Database.Delete();
db.Dispose();
}
我的問題是,它需要多一點的每個測試半秒,我想看到更好的性能。有什麼想法嗎?任何人都有更好的策略?
對不起,我的筆記本電腦在我輸入的時候正在死亡,我想確保我事先得到了它。您必須確保數據庫在測試之間持續存在,並且只有在不存在的情況下才創建(以確保測試可以以原子方式運行,但也可以按順序運行)。我們這樣做的方式是從具有DB屬性的抽象類繼承Fixtures。因此,您檢查數據庫是否爲空 - 如果是,則創建它,如果不是,則只需填寫數據。 – antinescience 2013-03-24 03:27:05
地獄,如果你想加快速度,你可以讓tableNames成爲抽象的一個屬性 - 設置一次,所以你不必每次拆卸都要經過反射。 – antinescience 2013-03-24 03:29:41
謝謝!我正在考慮更多這方面的內容。我將不得不確保他們正確訂購。 – orourkedd 2013-03-24 03:31:40