命令行arg到MSTest

时间:2014-05-30 16:15:48

标签: selenium mstest

让我解释一下我想要实现的目标。

我有一系列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。

关于如何实现目标的任何想法。

任何想法都表示赞赏。 肖恩

1 个答案:

答案 0 :(得分:0)

我会用特质来解决这个问题。只需在测试中将不同的浏览器添加为TestCategory,然后使用

/category:[filter]
运行测试时的

选项。您可以使用不同的bat文件来执行IE,FF和Chrome测试。