2009-02-25 8 views
1

Lorsque j'utilise le framework de test unitaire VS2008, je vois que testrunConfig a une option pour définir l'hôte. Si je change l'hôte de «Smart Device» à «Default», il semble que je puisse exécuter les tests sans les déployer vers un émulateur.VS2008 - Avantage de l'exécution de tests unitaires pour une bibliothèque CF sur un émulateur?

Je veux tester une bibliothèque construite pour une utilisation sur le Compact Framework, mais cela n'a rien à voir avec l'interface utilisateur, etc. L'exécute-t-elle dans l'hôte par défaut? Ou y a-t-il des différences qui pourraient faire que le test se casse réellement lorsqu'il est exécuté sur l'émulateur plutôt que sur ma machine locale? (Je suppose que l'exécution de Default utilisera toujours les bibliothèques CF.Net car ce sont les bibliothèques que la DLL doit tester les références?)

Répondre

1

Si vous changez la cible de test en "Default", elle tentera de lancer le test. tests sur le bureau. Le problème est que vos tests auront des références aux assemblages de test Smart Device, et qu'ils ne pourront pas fonctionner du tout. Vous obtiendrez une erreur le long des lignes de celle-ci:

System.ArgumentException: Object of type 
'Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestAdapterContext' 
cannot be converted to type 
'Microsoft.VisualStudio.TestTools.UnitTesting.TestContext' 

Cela dit, je ne pense que ce serait une bonne idée de toute façon. Vous voulez que vos tests se déroulent contre les FC pour assurer un comportement CF correct. Courir sur le bureau ne le fait pas. En outre, il existe de nombreux cas de non-interface utilisateur dans lesquels vous utilisez des éléments spécifiques à CF, tels que l'espace de noms WindowsMobile ou P/Invoking to coredll.dll.

L'exécution sur l'émulateur ou sur un périphérique est lente et une vraie bête à déboguer, mais ils ont une valeur qui la compense.

+0

J'ai dû faire quelque chose de différent? Je suis capable de compiler et d'exécuter mon test CF avec l'hôte défini sur Default. Mon projet de test fait référence aux versions CF des bibliothèques. – Steve

+0

Très étrange. Je viens de vérifier avec 2 différents projets de périphériques intelligents et les deux échouent de la même manière. – ctacke

+0

Je suis probablement en train de faire quelque chose de mal. Merci pour le double contrôle. –

Questions connexes