Question

J'ai récemment installé la version 2.4.2.355 MbUnit sur notre serveur de build qui fonctionne via Cruise Control.NET et NAnt, sur un ordinateur Windows Server 2003 avec .NET Framework 3.5 SP1 installé.

J'ai vérifié tous les coins et recoins des scripts de compilation, et le rapport de sortie NAnt sur CC.NET me dit que le projet de test se construit bien.

Ceci est le script NAnt:

<target name="compiletests" description="Compiles unit tests separately">
    <exec program="${netframework.dir}\msbuild.exe">
        <arg line="C:\dev\PROJ3.1\trunk\src\PROJ\Customer\CustomerUnitTests\Company.CustomerUnitTests.csproj  /t:Rebuild /p:Configuration=Debug"></arg>
    </exec>
</target>

Et la sortie est ff:

  

[exec] Company.CustomerUnitTests ->   C: \ dev \ PROJ.1 \ trunk \ src \ PROJ \ \ client CustomerUnitTests \ bin \ Debug \ Company.CustomerUnitTests.dll   [Exec] Fait projet de construction   "C: \ dev \ PROJ.1 \ trunk \ src \ PROJ \ Client \ CustomerUnitTests \ Company.CustomerUnitTests.csproj"   (Reconstruire cible (s)). [Exec] Construire   réussi. [Exec]   "C: \ dev \ PROJ3.1 \ trunk \ src \ PROJ \ Client \ CustomerUnitTests \ Company.CustomerUnitTests.csproj"   (Reconstruire cible) (1) ->

Ce que cela signifie est que la construction de l'ensemble de test unitaire réussi.

La chose est, à la fin des sorties NAnt est la suivante:

  

MbUnit-tests: [MbUnit] MbUnit   2.4.2.355 coureur de test [MbUnit] Aucun assemblages test ne fut trouvé dans le test

Je suis allé console et essayé d'utiliser MbUnit.Cons.Exe pour tester manuellement les ensembles compilés. Les résultats sont allés comme ceci:

  • ensembles de test construits en utilisant ma machine Windows XP SP3 ont été correctement reconnus et les tests ont été exécutées de manière appropriée sur ma machine, et sur une autre machine de dev pour cette question.
  • ensembles de test intégré dans le serveur de build exécutant Windows Server 2003 ne sont pas reconnus comme des ensembles de test; J'ai essayé de copier ces fichiers dans ma machine XP et ils ne sont pas reconnus non plus.

Je demande maintenant: quelle est la différence entre un ensemble de test et un ensemble non-test? Je suis sûr qu'il a quelque chose à voir avec les attributs de Test et TestFixture, mais dans mon cas, pourquoi les ensembles compilés dans les machines comme des tests compilés WinXP, et celles rassemblées la machine Win2K3 non reconnu?

quelqu'un Hope a un indice sur ce sujet.

Était-ce utile?

La solution

Tout d'abord vérifier cette question .
Si cela ne l'aide, vous devez vérifier la plate-forme cible (propriétés du projet, construction) être « Any CPU ». Après cela, essayez d'ouvrir ensemble qui est généré sur votre machine de construction utilisant réflecteur. Peut être les fichiers générés sont corrompus. Pourriez-vous s'il vous plaît aussi construire le projet manuellement à l'aide VS et tests de charge générés dans MbUnit.

Autres conseils

Il n'y a pas de différence fondamentale quant à savoir si une assemblée particulière est considérée comme un ensemble de test.

Je suppose que votre machine dev exécute une version légèrement différente de MbUnit que votre serveur de build. MbUnit v2 a des problèmes de compatibilité croisée version qui peut provoquer un dysfonctionnement de reconnaître correctement les tests (car il tente de charger une version différente de l'ensemble de cadre que est installé).

Par ailleurs, ces problèmes ont été largement résolus dans MbUnit v3.

Si vous ne l'avez pas déjà fait, vous trouverez peut-être utile d'installer une copie de MbUnit dans votre arbre source. Cela assurera qu'une version cohérente est toujours utilisée partout.

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