Доступ к другому URL на разных машинах для теста Watin - PullRequest
1 голос
/ 12 декабря 2008

Существует ли распространенный способ доступа к файлу csproj.user на локальных машинах, чтобы получить URL-адрес веб-сайта для тестов watin, чтобы тесты можно было запускать как на локальном сервере каждого разработчика, так и на IIS на сервере сборки? Я думаю, вы могли бы разобрать файл xml самостоятельно, но мне интересно, есть ли способ Очистить / Проще.

1 Ответ

1 голос
/ 12 декабря 2008

Я нашел это

Запуск веб-сервера разработки ASP.NET (Cassini) как часть настройки модульного теста?

и закончил тем, что делал что-то вроде этого с относительным путем от моего тестового проекта до моего веб-проекта. Затем настройте соответствующий файл csproj.user на сервере сборки.

открытая статическая строка GetDevelopmentServerURL (строка csprojFileName) { XPathDocument doc = новый 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;
    }
...