2011-03-04 3 views
1

Donc, j'écris un service web qui se connecte à un serveur PostgreSQL distant, tire des données et ensuite je fais des choses avec les données. Actuellement, j'écris des tests unitaires pour m'assurer que je peux saisir les données et mon List<T> a un nombre supérieur à zéro.TestDriven.NET se bloque pour les tests qui se connectent à la base de données

J'ai une connexion PostgresSQL privée:

private NpgsqlConnection _conn;

Dans la configuration du dispositif d'essai, j'ouvre la connexion:

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

Ecrire des tests ... exemple:

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

Ensuite, je démonte pour fermer les connexions:

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

Le problème est que, après le test (s) (peut se produire si je lance un seul test), il passe et se bloque jusqu'à ce que je me arrête TestDriven.NET.

Des commentaires à ce sujet? Je pense que cela a à voir avec la connexion PostgreSQL, parce que quand je les supprime, les tests échouent et tout s'effondre comme il se doit.

Répondre

2

Ouvrir et fermer la connexion pour chaque test - Configuration & TearDown au lieu de TestFixtureSetup & TestFixtureTeardown

+0

+1 Il est toujours bon d'ouvrir une connexion le plus tard possible et fermer le plus tôt possible. –

+0

Jusqu'ici tout va bien! Merci les gars! – dolphy

+0

Eh bien, je pensais que cela a fonctionné mais, a rencontré le problème à nouveau après quelques courses. – dolphy

Questions connexes