Les raisons pour lesquelles certains de mes tests unitaires SmartDevice échouez sur une machine et pas une autre?

StackOverflow https://stackoverflow.com/questions/4873244

Question

J'ai quelques tests unitaires qui fonctionnent bien sur ma machine de dev sur les deux Win Mobile 5 et 6 émulateurs (professionnels).

L'exécution sur un serveur de build certains des tests unitaires échouent, mais seulement sur l'émulateur Windows Mobile 6 (tous les tests passent sur l'émulateur Windows Mobile 5).

Les tests qui échouent ont des erreurs telles que:

Test method XXXXXMobile.Test.ManifestTests.TestCrewManifest threw exception: System.MissingMethodException: Could not load type 'XXXXXMobile.Controllers.ManifestController' from assembly 'XXXXXMobile.Controllers, Version=1.0.4049.32739, Culture=neutral, PublicKeyToken=null'..

et

Test method XXXXXMobile.Test.PermissionTests.TestMenuBarPermissions threw exception: System.MissingMethodException: Method not found: op_Implicit System.Object..

La ligne de commande qui déclenche les essais est la suivante:

C:\hudson\jobs\XXXXX Mobile (WinMobile 6 Emulator Tests)\workspace>e:\VS9\Common
7\IDE\MSTest.exe /runconfig:YYYY\WinMobile6Emulator.testrunConfig /testcontainer
:YYYY\XXXXXMobile.Test\bin\Release\XXXXXMobile.Test.dll

Le fichier testrunconfig est sans intérêt. Je pense que les seules choses que je changé la valeur par défaut sont les suivants: - Déploiement Activer: Vérifié - Type d'hôte: Dispositif intelligent - Plate-forme: Windows Mobile 6 Professional SDK - Appareil: Windows Mobile 6 Professional Emulator

Le répertoire contenant la DLL de récipient de test contient également les contrôleurs DLL qui est mentionné dans la première erreur ci-dessus.

Après avoir cogné la tête contre pendant un certain temps maintenant, je suis à une perte pour expliquer pourquoi seuls certains tests échouent et que sur une machine et un émulateur. Je suis incapable d'obtenir un message d'erreur plus utile en activant la journalisation des diagnostics sur les deux MSTest.exe et VSTestHost.exe.

Toutes les suggestions reçues avec reconnaissance.

Était-ce utile?

La solution

Et comme cela arrive souvent, les réponses apparaît peu de temps après avoir posé la question.

Dans ce cas, le problème est que l'émulateur sur le serveur de build n'a pas .Net 3.5 installé. Exécution de l'application de VS installera .Net 3.5, mais l'exécution des tests unitaires ne fonctionne pas. Sur la machine dev j'avais déjà exécuter l'application puis état enregistré (pour éviter d'avoir à réinstaller .Net 3.5 chaque course). Cela n'a pas été fait sur le serveur de build.

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