2017-04-07 105 views
-1

我正在使用Selenium和Chrome網絡驅動程序在C#中編寫行爲測試。除了本地調試之外,我還希望通過強制C#將站點的主機名解析爲暫存IP地址來測試登臺上下文中的更改。在C中解析任意主機名/ IP地址#

有沒有辦法爲給定的主機名設置任意IP地址,而無需編輯C:\ windows \ system32 \ drivers \ etc \ hosts,並且不需要設置實際的DNS記錄?

例如,當我提出以下電話,我想硒去,我可以手動設置我的調試應用程序的上下文內的IP地址:

using(var driver = new ChromeDriver()) 
{ 
    driver.Navigate().GoToUrl(url); 
} 

回答

0

您的行爲測試應該採取/閱讀一些配置源(自定義配置文件,環境變量等)在設置步驟中,並從該來源獲取站點地址。因此,不要在測試中更改主機文件或代碼,而只需更改配置設置。

此外,在理想的情況下,您應該有不同的主機名用於登臺和產品環境......並且就您的情況而言,您可以直接在測試中使用IP地址,而不是主機名。

+0

你的回答有沒有關係我問的問題。感謝您的建議,但不,謝謝。 – v623

+0

@ v623我的觀點是你應該考慮另一個方向,而不是解決主機名的解決方法,因爲這更像是一個骯髒的黑客攻擊 – Set

0

您可以將值添加到您的app.config並根據您要使用的環境更改網址。

//app.config file 
    <add key="URL" value="http://123.45.67.89/" /> 


    using System.Configuration; 

    using(var driver = new ChromeDriver()) 
    { 

    driver.Navigate().GoToUrl(ConfigurationManager.AppSettings["URL"]); 
    }