Nous avons quelques tests NUnit que l'accès à la base de données. Quand l'un d'eux échoue, il peut laisser la base de données en état incohérent - ce qui n'est pas un problème, puisque nous reconstruire la base de données pour chaque série de tests - mais il peut causer d'autres tests à l'échec dans la même course.
Est-il possible de détecter que l'un des tests d'échec et d'effectuer une sorte de nettoyage?
Nous ne voulons pas écrire de code de nettoyage dans chaque test, nous avons déjà le faire maintenant. J'aimerais perfrom de nettoyage, Démontage, mais seulement si le test a échoué, comme l'opération de nettoyage peut être coûteux.
Mise à jour: À préciser - je voudrais des tests pour être simple et de ne PAS inclure tout le nettoyage ou le traitement des erreurs de logique. Aussi, je ne veux pas effectuer de la base de données réinitialiser à chaque essai, uniquement si le test échoue. Et ce code doit probablement être exécutée dans le Démontage de la méthode, mais je ne suis pas au courant d'une quelconque manière à obtenir des infos si nous sommes actuellement en train de déchirer vers le bas à partir échoué ou a été un succès.
Update2:
[Test]
public void MyFailTest()
{
throw new InvalidOperationException();
}
[Test]
public void MySuccessTest()
{
Assert.That(true, Is.True);
}
[TearDown]
public void CleanUpOnError()
{
if (HasLastTestFailed()) CleanUpDatabase();
}
Je suis à la recherche pour la mise en œuvre de HasLastTestFailed()