1

所以我正在编写一个连接到远程 PostgreSQL 服务器的 Web 服务,提取一些数据,然后我对这些数据进行处理。目前,我正在编写单元测试以确保我可以获取数据并且我List<T>的计数大于零。

我有一个私有 PostgresSQL 连接:

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();
}

问题是在测试之后(如果我只运行一个测试可能会发生),它通过然后挂起,直到我停止 TestDriven.NET。

对此有什么想法吗?我认为它与 PostgreSQL 连接有关,因为当我删除这些连接时,测试将失败,并且一切都会按照应有的方式崩溃。

4

1 回答 1

2

为每个测试打开和关闭连接 - Setup & TearDown 而不是 TestFixtureSetup & TestFixtureTeardown

于 2011-03-04T14:59:11.087 回答