2008-12-11 5 views
1

Existe-t-il un moyen commun d'accéder au fichier csproj.user des machines locales pour obtenir l'URL du site Web pour les tests watin afin que les tests puissent s'exécuter sur chaque serveur local des développeurs ainsi que sur IIS sur le serveur de construction? Je suppose que vous pourriez analyser le fichier XML vous-même, mais je me demande s'il y a un moyen plus propre/plus facile.Accès à une URL différente sur différentes machines pour le test Watin

Répondre

1

J'ai trouvé ce

Starting ASP.NET Development Web Server (Cassini) as part of unit test setup?

et a fini par faire quelque chose comme ça avec un chemin relatif de mon projet de test à mon projet Web. Puis configurez un fichier csproj.user approprié sur le serveur de génération.

public static string GetDevelopmentServerURL (string csprojFileName) { XPathDocument doc = new XPathDocument (csprojFileName); Navigateur XPathNavigator = doc.CreateNavigator();

 XmlNamespaceManager manager = new XmlNamespaceManager(navigator.NameTable); 
     manager.AddNamespace("msbuild", 
      "http://schemas.microsoft.com/developer/msbuild/2003"); 

     const string xpath = "/msbuild:Project/msbuild:ProjectExtensions/" 
          + "msbuild:VisualStudio/msbuild:FlavorProperties/" 
          + "msbuild:WebProjectProperties"; 

     XPathNavigator webProjectPropertiesNode = 
      navigator.SelectSingleNode(xpath, manager); 
     XPathNavigator developmentServerPortNode = 
      webProjectPropertiesNode.SelectSingleNode("msbuild:DevelopmentServerPort", 
       manager); 
     XPathNavigator developmentServerVPathNode = 
      webProjectPropertiesNode.SelectSingleNode("msbuild:DevelopmentServerVPath", 
       manager); 
     XPathNavigator UseIIS =webProjectPropertiesNode.SelectSingleNode("msbuild:UseIIS", 
    manager); 
     XPathNavigator IISPath = webProjectPropertiesNode.SelectSingleNode("msbuild:IISUrl", 
    manager); 
     XPathNavigator UseCustomServer = webProjectPropertiesNode.SelectSingleNode("msbuild:UseCustomServer",manager); 
     XPathNavigator CustomeServerPath = webProjectPropertiesNode.SelectSingleNode("msbuild:CustomServerUrl", 
    manager); 
     if (UseIIS.Value == "True") 
      return IISPath.Value; 
     if (UseCustomServer.Value == "True") 
      return CustomeServerPath.Value; 
     return "http://localhost:" + developmentServerPortNode.Value + developmentServerVPathNode; 
    } 
Questions connexes