2010-11-15 5 views
3

Nous avons un test Watin pour une page avec une fenêtre contextuelle ajax. Le test essaie d'ouvrir la fenêtre, la cacher puis la réapparaître.Le test Watin fonctionne à partir de Visual Studio mais pas de CCNet fonctionnant sous Windows Service

Le test s'exécute correctement lorsque je l'exécute à partir de Visual Studio ou de nos scripts de construction locaux. Le test échoue lorsqu'il s'exécute sur le serveur de génération.

Le serveur de build est Cruise Control.Net exécuté en tant que service Windows (connecté en tant que compte de domaine). Nos scripts de construction sont écrits dans NAnt et nous exécutons les tests Watin en utilisant la méthode décrite dans this post.

La fenêtre popup modale ajax est implémentée à l'aide de jquery.

Nous utilisons:

  • Watin 2.0.20
  • NUnit 2.5.5
  • Windows Server 2003 avec IE7
  • jQuery 1.4.2

Voici un extrait du test défaillant.

 


      _ieBrowser.Button("btnToggle").Click(); 
      _ieBrowser.WaitForComplete(); 

      Assert.IsTrue(_ieBrowser.Button("btnReshow").Exists); 

      _ieBrowser.Button("btnReshow").Click(); 
      _ieBrowser.WaitForComplete(); 

      _ieBrowser.TextField("editBody").WaitUntilExists(); 
      Assert.IsTrue(_ieBrowser.TextField("editBody").Text.Contains(thisIsCustomer)); 

      _ieBrowser.Button("btnDone").Click(); 
      _ieBrowser.WaitForComplete(); 
 

Cette ligne:

_ieBrowser.TextField("editBody").WaitUntilExists();

fois sur.

Répondre

0

Le problème est que Windows Service ne peut pas avoir de fenêtres. C'est pourquoi votre test échoue.

4

Par défaut, un service Windows ne peut pas interagir avec le bureau.

Si vous allez dans les propriétés du service, puis regardez dans l'onglet Connexion, vous verrez 2 options pour le compte de votre service: compte système local ou un autre compte spécifié.

Si vous sélectionnez le compte système local, la case à cocher Autoriser le service à interagir avec le bureau sera activée.

Si vous activez cette option, puis redémarrez votre service, il devrait permettre au service d'ouvrir et de fermer les fenêtres.

Questions connexes