总共有10个测试用例。我需要用chrome运行一些测试用例,比如用chrome运行1-3和6-8测试用例,用firefox运行4-5和9-10测试用例。
helper文件中的代码是
static public IWebDriver GetWebDriverC(browserType brt)
{
ChromeOptions cOption = new ChromeOptions();
cOption.AddArgument("no-sandbox");
driver = new ChromeDriver(cOption);
driver.Navigate().GoToUrl(url);
return driver;
}
static public IWebDriver GetWebDriverFF(browserType brt, string url, string username, string password)
{
FirefoxDriverService service = FirefoxDriverService.CreateDefaultService();
service.FirefoxBinaryPath = @"path";
driver = new FirefoxDriver(service);
driver.Navigate().GoToUrl(url);
bool ele1 = AutoItX.WinExists("[CLASS:MozillaDialogClass]") == 1;
if (ele1)
{
AutoItX.WinActivate("[CLASS:MozillaDialogClass]");
AutoItX.Send(username);
AutoItX.Send("{TAB}");
AutoItX.Send(password);
AutoItX.Send("{ENTER}");
}
return driver;
}
不同用户的用户名和密码不同。主文件中有多个测试用例
[TestInitialize]
public void initilize()
{
Webd= Helper.GetWebDriverC(Chrome);
}
[Priority(0)]
[TestMethod]
public void 1()
{
}
[Priority(2)]
[TestMethod]
public void 2()
{
}
.
.
.
[Priority(10)]
[TestMethod]
public void 10()
{
}
在Test initialize中只有一个驱动程序,那就是chrome,并且chrome在每次测试用例运行之前都会打开。我希望当测试用例基于前面提到的某些条件运行时,测试用例可以在所需的浏览器上运行。如何使用C# mstest实现这一点?
发布于 2020-10-16 23:24:06
这里的问题是,您在TestInitialize
步骤中设置了WebDriver,因此同一类中的任何测试都将使用相同的驱动程序,在本例中为Chrome。
一种方法是对FireFox和Chrome有单独的测试类。
Chrome测试:
public class ChromeTests
{
[TestInitialize]
public void initilize()
{
Webd = Helper.GetWebDriverC(Chrome);
}
[TestMethod]
public void 1()
{
}
}
FireFox测试
public class FireFoxTests
{
[TestInitialize]
public void initilize()
{
Webd = Helper.GetWebDriverFF(Chrome);
}
[TestMethod]
public void 1()
{
}
}
替代解决方案包括:
中创建一个新的实例
https://stackoverflow.com/questions/64391452
复制相似问题