J'utilise TeamCity pour réaliser des versions automatisées de tests et de production. TeamCity exécute nos tests mbUnit 3.1 à la fin du processus avec Gallio. Lors de l'exécution de la version de test, Gallio doit essayer d'exécuter des tests sur le serveur de base de données de test. Cependant, lors de l'exécution d'une génération de production, ces tests ne doivent pas être exécutés car TeamCity ne peut pas accéder au serveur de base de données de production (et même si la base de données de production était disponible).Comment ignorer un test de manière conditionnelle dans mbUnit?
Comment puis-je marquer un test pour qu'il soit ignoré dans mbUnit en fonction d'une valeur booléenne telle que IsDBOnline?
En fait, au lieu d'appeler Assert.Inconclusive, vous trouverez peut-être préférable de lancer une exception spéciale qui définit le résultat du test: throw new SilentTestException (TestOutcome.Ignored, "Some message"); –
Et maintenant que j'y pense, j'ai créé une méthode pour ça aussi! Assert.TerminateSilently (TestOutcome.Ignored, "Some message"); –
J'ai sous-classé TestDecoratorAttribute comme vous l'avez suggéré, remplacer la méthode Initilize, puis appelée Assert.TerminateSilently lorsque la base de données est hors ligne, et base.Initialize lorsqu'elle l'était. Cela a fonctionné très bien! Merci! –