Je souhaite invoquer une méthode lorsque mon test d'intégration échoue (par exemple, Assert.AreEqual
échoue), y a-t-il un délégué d'événement auquel je puisse m'inscrire dans le cadre NUnit? Bien sûr, le délégué à l'événement doit être viré lorsque les tests échouent. C'est parce que dans mes tests il y a beaucoup de Assert
déclaration, et je ne peux pas dire besoin de se connecter le Assert
, avec les informations d'assertion qui causent un problème dans mon bug tracker. La meilleure façon de procéder consiste à invoquer une méthode déléguée lorsque le test échoue.Echec du gestionnaire d'événements pour s'abonner et Assert.AreEqual
Répondre
Il semble qu'il n'y ait aucun cas je ne peux souscrire à en cas d'échec assert
Je suis curieux, quel problème essayez-vous de résoudre en faisant cela? Je ne connais pas de moyen de le faire avec NUnit, mais il y a une façon désordonnée de le faire. Vous pouvez fournir un Func et l'appeler comme message d'échec. Le corps du Func peut vous fournir la délégation que vous recherchez.
var callback = new Func<string>(() => {
// do something
return "Reason this test failed";
});
Assert.AreEqual("", " ", callback.Invoke());
Cela sonne comme vous êtes désireux de créer votre propre lanceur de test.
Il existe une distinction entre les tests (a définit les actions) et le déroulement des tests (en cours d'exécution des tests). Dans ce cas, si vous souhaitez détecter qu'un test a échoué, vous devez le faire lorsque le test est exécuté. Si tout ce que vous cherchez à faire est d'envoyer un email en cas d'échec, il peut être plus facile de créer un script (powershell/batch) qui exécute le coureur de ligne de commande, et envoie un email en cas d'échec ?)
Si vous voulez une interactivité plus complexe, vous devrez peut-être envisager de créer un coureur personnalisé. Le coureur peut lancer le test et agir en fonction des résultats. Dans ce cas, vous devriez regarder dans l'espace de noms Nunit.Core
pour l'interface du coureur de test.
Par exemple (non testé):
TestPackage package = new TestPackage();
package.add("c:\some\path\to.dll");
SimpleTestRunner runner = new SimpleTestRunner();
if (runner.Load(Package)){
var results = runner.Run(new NullListener(), TestFilter.Empty, false, LoggingThreshold.Off);
if(results.ResultState != ResultState.Success){
... do something interesting ...
}
}
EDIT: un meilleur extrait de code https://stackoverflow.com/a/5241900/1961413
- 1. Echec du chargement du paquet Ankhsvn
- 2. VS2008 Echec du chargement du projet
- 3. Assert.AreEqual échoue même si attendu et réel sont les mêmes
- 4. NUnit ne fonctionne pas bien avec Assert.AreEqual
- 5. DateTime.ParseExact - Echec
- 6. Echec mono/invoke C#
- 7. ASP.NET HttpModule - exécution garantie du code pré et post-gestionnaire?
- 8. _dl_close Echec de l'assertion
- 9. Echec de recurse
- 10. Echec de la désérialisation XML
- 11. Gestionnaire pour dossier d'images
- 12. différence de taille entre la taille du dossier du Finder et du gestionnaire de fichiers Carbon
- 13. Comment afficher l'état Echec dans le travail du minuteur Sharepoint
- 14. Importation à partir du Gestionnaire de contacts professionnels pour accéder
- 15. Gestionnaire vidéo et audio ASP.NET
- 16. Caractères incorrects et gestionnaire sql *
- 17. Echec de getJSON, JSON valide
- 18. Echec de l'audio en j2me
- 19. SSIS - Echec du processus avec message: "Stockage insuffisant pour effectuer cette opération"
- 20. Colonnes du Gestionnaire des tâches Windows - Poignées
- 21. empêcher l'exécution du gestionnaire d'événements parent
- 22. Echec de SetWindowsHookEx sur bêta2 x64
- 23. Javascript gestionnaire d'événements pour Imprimer
- 24. Problèmes lors de l'installation du paquet pear (Echec du chargement /usr/lib64/php4/php_ioncube_loader_lin_4.3_x86_64.so)
- 25. Gestionnaire pour les noms de fichiers
- 26. Echec de l'installation de mon plugin NetBeans
- 27. Erreur du contrôle ActiveX Delphi: exception EOSError - Echec de l'appel d'une fonction du système d'exploitation
- 28. en utilisant e4x pour récupérer xml à partir du gestionnaire de résultat du service Web Flex
- 29. Echec de l'appel depuis une bibliothèque séparée
- 30. ASP.NET Gestionnaire d'événements pour l'étiquette dans Datalist