2008-12-20 5 views
4

J'utilise NUnit (2.4.6) et ma nuit de construction/test est faite avec Team City 4. J'ai contacté la team city et ils m'ont déjà dit qu'ils ne pouvaient pas gérer ça. Donc, je suis là. Ce que je veux, c'est configurer mon test pour faire leurs tests comme d'habitude, mais dans le cas où ils raccrochaient ... pour une raison inconnue (cela pourrait arriver ...) ... Je ne veux pas qu'ils continuer mais échouer. C'est nécessaire parce que parfois j'ai remarqué que ma nuit de construction a été faite et quand les tests arrivent, certains tests racontent toute la nuit.Comment faire pour que UnitTest échoue automatiquement après un certain temps?

Comment le feriez-vous? Sachez que je sais que Nunit 2.5 (Beta) a le MaxTime attribute mais que je devrais mettre à niveau + le faire plus de 800 tests unitaires ... Je voudrais quelque chose pour l'ensemble des tests sans avoir à passer à cette version bêta version pour le moment.

+0

Voulez-vous dire Team City 4.1? 1.4 est assez vieux. –

+0

oueah Team City 4.1 –

Répondre

2

TC a un délai d'attente d'exécution pour chaque configuration de construction, qui échoue la génération si elle est dépassée. Il est dans les paramètres généraux "échec de la construction si elle est plus longue que". Ce n'est pas un test par unité, mais je pense que c'est assez bon pour votre scénario.

0

J'utiliserais le MaxTime comme vous le suggérez, c'est la manière standard de le faire - pourquoi prendre la peine de créer quelque chose de nouveau juste pour éviter de mettre à jour les tests eux-mêmes? Si le problème est simplement le temps nécessaire pour mettre à jour les tests, personnellement, je vais probablement supprimer un programme rapide et corrompu pour analyser les fichiers source et ajouter l'attribut. Il y a probablement une meilleure façon de mettre à jour le code (générateurs ou autre), mais cela fonctionnerait.

À moins qu'il y ait une raison impérieuse de ne pas utiliser NUnit 2.5?

+0

Je pense que son problème était de passer à la version bêta de NUnit 2.5, pas avec l'ajout de l'attribut – orip

1

Si vous êtes complètement opposé à la mise à niveau vers la version 2.5, il existe un MaxTimeDecorator dans les échantillons NUnit qui échouera au test si cela prend plus de temps que prévu. Évidemment, cela n'aidera pas lorsque le test se bloque, mais vous pouvez probablement modifier l'échantillon de sorte qu'il génère le test dans son propre thread et a un rappel de temps en temps pour voir si la limite de temps a été dépassée. Ceci cependant deviendrait plutôt compliqué très rapidement.