3 votes

Comment exécuter des tests d'interface utilisateur codés avec le SDK Windows Azure v1.4

J'ai une application web MVC3 qui s'est développée au point que je souhaite commencer à automatiser une partie des tests fonctionnels. J'ai donc essayé d'ajouter un test d'interface utilisateur codé au même projet que celui dans lequel je place les tests unitaires. Rien que de la frustration.

J'ai pu enregistrer une série d'étapes simples : se connecter à l'application.

J'ai pu générer le code et je peux voir le code généré dans un fichier nommé UIMap.Designer.cs. Une instance de cette classe est instanciée et la méthode de test est appelée dans un fichier que j'ai nommé LoginTest.cs.

Lorsque j'essaie de faire un clic droit sur la [TestMethod] dans LoginTest.cs et de choisir Run Test, j'obtiens d'abord l'erreur suivante :

Impossible de charger le conteneur de test 'C :... \WebRole.Tests.dll ou l'une de ses dépendances. Détails de l'erreur : System.IO.FileNotFoundException : Impossible de charger le fichier ou l'assembly 'Microsoft.VisualStudio.TestTools.UITesting, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' ou l'une de ses dépendances. Le système ne trouve pas le fichier spécifié.

J'ai donc fait passer les références suivantes de Copier local = faux à vrai :

  • Microsoft.VisualStudio.TestTools.UITesting
  • Microsoft.VisualStudio.TestTools.UITest.Extension
  • Microsoft.VisualStudio.QualityTools.CodedUITestFramework

Maintenant, lorsque j'exécute le test, j'obtiens le résultat suivant :

Les tests ont commencé :

Nombre total de tests : 1, filtré : 1

Aucun test n'a été trouvé.

Durée : 94.9989452249951

Une instance de navigateur n'est pas démarrée. Les émulateurs Azure Compute et Azure Storage ne sont pas démarrés. L'application n'est pas packagée et déployée. En bref, aucune des choses qui se produisent lorsque j'exécute l'application ne semble se produire. Je me demande donc comment le test de l'interface utilisateur peut s'exécuter, puisque l'émulateur Azure ne fonctionne pas.

Pour contourner ce problème, j'ai essayé d'ouvrir deux instances de VS2010. Dans la première, j'ai exécuté l'application comme d'habitude pour que les émulateurs Azure fonctionnent et que l'application soit déployée. Dans la seconde, j'ai exécuté la méthode CodedUITest. Même résultat.

Maintenant, je suis coincé. Est-ce que quelqu'un d'autre est capable d'exécuter un Coded UI Test avec les émulateurs Azure fournis avec Azure SDK v1.4 ?

0voto

gruve Points 418

Il est probablement trop tard pour l'OP, mais cela pourrait aider quelqu'un d'autre avec un problème similaire (c'était mon cas il y a quelques heures).

Avertissement : je suis un débutant complet avec CodedUI, il se peut donc que ce ne soit pas la meilleure solution. droit de le faire. Mais au moins, cela m'a permis de commencer.

J'ai une situation similaire : Azure 1.4, application web ASP.NET MVC (2 dans mon cas). Je veux démarrer une suite de tests UI que je peux exécuter dans mon environnement de développement de bureau (VS2010 Premium).

Voici les étapes qui m'ont permis de démarrer : 1. Enregistrez un test CodedUI - juste pour que vous ayez quelque chose à voir fonctionner pour prouver que vous êtes capable de le faire. (J'ai suivi les premières étapes de ce test : http://msdn.microsoft.com/en-us/library/dd286608.aspx ).

Ouvrez le navigateur avant de commencer l'enregistrement et enregistrez tout ce que vous devez faire pour démarrer votre application web.

  1. Ajoutez un code d'initialisation au test pour démarrer le navigateur : Dans votre classe de test Coded UI, ajoutez une méthode avec un attribut [TestInitialize] :
    [TestInitialize]
    public void LaunchBroswer()
    {
        BrowserWindow browser = BrowserWindow.Launch(new System.Uri("https://127.0.0.2/Logon"));
    }

Votre URI peut, bien entendu, varier. C'est ce petit détail magique que j'ai dû déduire d'autres articles. Le fait d'avoir TestInitialize dans une région de code réduite n'a pas aidé.

  1. Pour exécuter les tests, démarrez les émulateurs Azure : Ctrl+F5 (ce qui démarre l'application web dans un navigateur, mais n'exécute pas le test.

  2. Vous pouvez maintenant exécuter le test à partir de la même instance de VS que celle à partir de laquelle vous avez démarré les émulateurs.

-1voto

Didier Caron Points 438

Le problème que vous rencontrez n'est pas seulement lié à Azure, mais au test de l'interface utilisateur codée dans son ensemble. Pour MVC (et asp.net), il existe quelques outils qui pourraient vous soulager (et vous n'aurez pas besoin de la suite d'interface utilisateur codée).

avez-vous essayé SpecFlow y WatiN ? il y a même un paquetage que vous pouvez utiliser à partir de Nuget et qui est construit dans le cadre de l'application MVCContrib bibliothèque.

J'espère que cela vous aidera à tester l'interface utilisateur.

consultez channel9 pour obtenir des instructions : cette vidéo

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X