Question

Nous utilisons UI Automation et Nunit pour créer des tests de tests d’interface utilisateur pour les applications WPF. Nous avons créé des tests qui fonctionnent correctement lorsque vous les exécutez à partir d'un ordinateur local. Ces tests ne s'exécutent jamais avec succès sur notre serveur de compilation (à l'aide de TeamCity). Construisez toujours après l’ouverture de la fenêtre de l’application. Mais si je suis connecté (poste de travail distant), tous les tests d’UI Automation se déroulent également sur notre serveur de compilation. Donc, je suppose que cela a probablement quelque chose à voir avec l'exécution d'une session Windows active. Des idées pour convaincre notre serveur de construction de créer une session Windows active ou d’autres solutions pour exécuter ces tests sur un serveur de construction?

Était-ce utile?

La solution

Vous n'avez pas beaucoup d'options. Je vais énumérer les deux que je connais, l’option la plus préférée en premier:

  • Configurez une machine virtuelle sur votre serveur de génération. Vos constructions s'exécutent dans la machine virtuelle. Vous pouvez verrouiller l'hôte (c'est-à-dire votre serveur de génération) pour assurer la sécurité.
  • Gardez quelqu'un connecté tout le temps. Cette course crée un problème de sécurité. Vous pouvez atténuer un peu ce problème en supprimant la souris, le clavier et l’écran et n’accédez au buildserver que via RDP ou quelque chose de similaire.

Modifier

Jetez un coup d'œil à cet FAQ TestComplete : Peut exécuter des scripts d'exécution de TestComplete quand l'ordinateur est verrouillé?

Autres conseils

OK, je devine juste ici.

Essayez d’exécuter le service TeamCity avec un utilisateur de serveur de génération local au lieu du compte système. Vous devez peut-être vous connecter une fois avec ce compte avant de commencer une nouvelle version.

Il semblerait que vous deviez exécuter vos tests avec une session interactive plutôt qu’un service. Ajout du " Autoriser le service à interagir avec le bureau " Cela pourrait aider, mais apparemment ce n’est plus supporté par Vista.

Si vous pouvez exécuter vos générations interactivley en tant que ligne de commande, ne constitue pas un service qui devrait également fonctionner.

Nous avions l'habitude d'exécuter nos tests UIAutomation en utilisant l'agent de chargement Visual studo 2008 pour les distribuer, fonctionnant comme un outil de ligne de commande sur les machines virtuelles sans aucun problème.

Je conviens également que vous ne devriez probablement pas exécuter de tests d'interface utilisateur sur un serveur de construction dans le cadre de votre construction quotidienne.

  

La construction est toujours suspendue après l'ouverture de la fenêtre de l'application.

Des tests qui instancient l'interface utilisateur? Cela ne va pas au travail, par exemple si vous obtenez un dialogue modal, la construction sera bloquée. C'est la raison pour laquelle le modèle MVP a été inventé, afin d'isoler le code de présentation actif d'une vue concrète.

Utilisez-vous une vue fictive dans vos tests automatisés?

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