Test de l’application UWP avec xUnit sur VS2015

J’ai réussi à créer un projet xUnit sur VS2015 pour tester les applications UWP. Il y a un contexte à cette question ici sur stackoverflow qui donne un contexte à cette question.

Je peux comstackr et exécuter le test. Cependant, lorsque je fais référence à un projet à tester, l’erreur suivante se produit.

------ Run test started ------ Updating the layout... Checking whether required frameworks are installed... Registering the application to run from layout... Deployment complete (1857ms). Full package name: "8f4533e5-fec8-415b-94ab-6bce6b37374f_1.0.0.0_x86__5gyrq6psz227t" A user callback threw an exception. Check the exception stack and inner exception to determine the callback that failed. ========== Run test finished: 0 run (0:00:04.3378913) ========== 

Je comprends que le projet référencé (qui doit être testé sur l’unité) est à l’origine du a user callback threw an exception mais je ne vois aucun moyen évident de déboguer cette erreur. Le mode d’exécution ne ressemble pas à un débogage normal pouvant être examiné avec des points d’arrêt.

Est-ce que quelqu’un sait comment creuser et savoir ce qui cause le a user callback threw an exception erreur d’ a user callback threw an exception ? Le projet d’application à tester est exempt d’erreurs et fonctionne tout seul.

Ok, fait quelques recherches et auto-apprentissage et maintenant je peux répondre à ma propre question.

Le fait le plus important:

Vous ne pouvez pas tester un projet UWP, seulement une bibliothèque de classes (pour le moment).

Ce qui précède est une citation de Jerry Nixon (voir vers la fin de la page liée). Donc, ça dit tout, mais ne pas savoir ce fait important vous mettra sans aucun doute dans une poursuite en chasse à l’oie sauvage comme elle m’a été faite.

Ce qui précède signifie que si vous ne l’avez pas déjà fait, vous devez scinder votre projet d’application en une partie de l’interface utilisateur (vue et autres parties liées à l’interface utilisateur), et le rest en un projet de bibliothèque autre qu’interface utilisateur (comprenant des modèles, un access aux données). méthodes, etc.); le projet de bibliothèque non-UI étant le candidat à être testé en unité. Heureusement, il était facile de réaliser cela avec mon application et je peux maintenant effectuer des tests unitaires des parties les plus cruciales de mon application en référençant la partie bibliothèque de classes du projet test. C’était aussi instructif pour l’avenir.

L’erreur ci-dessus est donc due au référencement d’un projet UWP chargé d’UI, qui ne peut pas être testé pour le moment.