Question

Je viens de découvrir que je recevais deux fois le nombre de tests obtenus que j'ai reçu. Découvert quand un test a cassé et j'ai eu deux échecs de test identiques. Même test, même tout. Ca me fait assez confus, mais a réussi à le réduire à une certaine classe de test qui était une classe partielle.

La raison pour laquelle il était une classe partielle était que j'avais divisé une classe de test en deux, juste pour le rendre un peu plus propre. La classe en cours de test avait une certaine méthode qui a nécessité une longue série de tests et je pensais que ce serait plus propre d'avoir ceux dans un fichier séparé. Mais puisqu'il y avait une ou deux méthodes auxiliaires utilisés je me suis dit que je pouvais faire les deux fichiers avait encore partielle de classe afin que l'accès à ces méthodes.

Le cadre de test est NUnit et les essais a été exécuté en utilisant TestDriven.Net. Conduit les tests à la fois à l'intérieur d'une méthode d'essai unique (rapporté deux tests passés au lieu d'un), la classe (obtenu deux fois le nombre de tests passés) et sur l'ensemble du projet de test.

a réussi à résoudre le problème en faisant les classes partielles et non simplement dupliquer ces minuscules méthodes d'aide (peut déplacer ceux à une classe d'aide séparée ou quelque chose plus tard).

... pourquoi diable est-ce qui se passe? Je pensais que les classes partielles ont été compilées en une seule classe? Est-ce un problème avec les classes partielles en général, NUnit, Test-Driven.net ou quelque chose de complètement différent?

Était-ce utile?

La solution

Vous mettez probablement l'attribut [TestFixture] dans les deux fichiers de la classe partielle. Cela entraînera TestFixture à émettre deux fois dans la définition de classe IL et NUnit exécutera le même code de test deux fois. Vous ne devez ajouter [TestFixture] dans l'un des fichiers pour votre classe partielle.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top