Accessing a different url on different machines for the Watin test

Is there a generic way to access csproj.user files of local machines to get the website url for watin tests so that tests can run on every local dev server as well as IIS on the build server? I think you could parse the XML file yourself, but I'm wondering if there is a Cleaner / Easier way.

+1


source to share


1 answer


I found this

Running ASP.NET development web server (Cassini) as part of a unit test setup?

and ended up just doing something like this with a relative path from my test project to my web project. Then set up the appropriate csproj.user file on the build server.



public static string GetDevelopmentServerURL (string csprojFileName) {XPathDocument doc = new XPathDocument (csprojFileName); XPathNavigator navigator = 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;
    }

      

+1


source







All Articles