2011-03-04 56 views
1

因此,我正在編寫一個連接到遠程PostgreSQL服務器的Web服務,提取一些數據,然後處理數據。目前,我正在編寫單元測試以確保我可以抓取數據,並且我的List<T>的計數大於零。TestDriven.NET掛起連接到數據庫的測試

我有一個私人PostgreSQL的連接:

private NpgsqlConnection _conn;

在測試夾具的設置,我打開連接:

[TestFixtureSetUp] 
public void TestFixtureSetUp() 
{ 
    _conn = DAL.ConnectToPostgeSQL(); 
} 

寫一些測試...例如:

[Test] 
public void CanGetSubmissions() 
{ 
    List<Submission> submission = DAL.GetSubmissions(_conn); 
    Assert.GreaterThan(submission.Count, 0); 
} 

然後,我拆下來關閉連接:

[TestFixtureTearDown] 
public void TestFixtureTearDown() 
{ 
    _conn.Close(); 
    _conn.Dispose(); 
} 

麻煩的是,測試(S)後,它傳遞,然後就掛起,直到我停止TestDriven.NET(如果我只運行一個測試發生)。

對此有何看法?我認爲它與PostgreSQL連接有關,因爲當我刪除這些連接時,測試將會失敗,並且所有事情都應該按照原樣進行。每個測試

回答

2

打開和關閉連接 - 設置&拆機而不是TestFixtureSetup & TestFixtureTeardown

+0

+1它總是好的做法是儘可能晚地打開一個連接,並儘早將其關閉。 – 2011-03-04 15:05:13

+0

到目前爲止好!多謝你們! – dolphy 2011-03-04 15:11:29

+0

嗯,我認爲這工作,但幾次運行後再次遇到問題。 – dolphy 2011-03-04 15:25:29