让我解释一下我想要实现的目标。
我有一系列MSTest单元测试(VS 2010),它使用Selenium进行自动浏览器测试。 Selenium允许我设置一个具有不同浏览器和版本的计算机网格。然后,我可以在任何已注册的浏览器/版本配对上执行我的测试。
我的所有Test类都继承自基类,我为测试设置了本地和浏览器版本对
在基类的MyTestInitialize方法中,我有以下
//设置区域设置
// Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(“fr-CA”); Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(“en”);
//设置Selenium驱动程序
DesiredCapabilities InternetExplorerBrowser = DesiredCapabilities.InternetExplorer(); InternetExplorerBrowser.SetCapability("browserName", "internet explorer"); InternetExplorerBrowser.SetCapability("version", "11"); driver = new RemoteWebDriver(new Uri("http://192.168.0.1:4444/wd/hub"), InternetExplorerBrowser);
/*Uncomment the following lines to use Chrome*/
//DesiredCapabilities ChromeBrowser = DesiredCapabilities.Chrome();
//ChromeBrowser.SetCapability("browserName", "chrome");
//driver = new RemoteWebDriver(new Uri("http://192.168.0.1:4444/wd/hub"), ChromeBrowser);
等等,适用于Firefox和Safari
我可以从VS命令行工具运行我的所有测试,但如果我想指定不同的浏览器/版本配对,我需要编辑上面的代码,重新编译然后执行以获得我想要的结果。
我想要做的是能够执行不同的浏览器/版本配对而无需重新编译。我的第一个想法是尝试将命令行arg传递给MSTest然后从我的类中访问这些args并使用它们来设置我想要的浏览器/版本。
我在网上做了一些搜索,似乎不支持将自定义命令行args传递给MSTest。
关于如何实现目标的任何想法。
任何想法都表示赞赏。 肖恩
答案 0 :(得分:0)
我会用特质来解决这个问题。只需在测试中将不同的浏览器添加为TestCategory,然后使用
/category:[filter]
运行测试时的选项。您可以使用不同的bat文件来执行IE,FF和Chrome测试。