Я работаю в C# с Селеном Grid2 и MbUnit/Gallio. Я прочитал, что комбинация наборов данных может использоваться, чтобы вести MbUnit Альтернатива UsingFactories в MbUnit v3. Так, я пытаюсь использовать MbUnit, чтобы выполнить единственный Тест на многократных браузерах с дополнительным набором данных, чтобы сделать декартово произведение браузеров и данных в тесты. Если я бегу, код без дополнительных вещей набора данных хорошо работают, тестовый код выполняется против этих двух браузеров.
private IEnumerable ProvideCapabilities
{
get
{
yield return DesiredCapabilities.Firefox();
yield return DesiredCapabilities.Chrome();
}
}
[Test]
public void testBrowser([Factory("ProvideCapabilities")] ICapabilities browser)
{
IWebDriver driver = new RemoteWebDriver(new Uri("http://127.0.0.1:4444/wd/hub"),
browser);
driver.Navigate().GoToUrl("http://www.google.com/");
IWebElement query = driver.FindElement(By.Name("q"));
query.SendKeys("Bark");
query.Submit();
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
wait.Until((d) => { return d.Title.ToLower().StartsWith("bark"); });
System.Console.WriteLine("Page title is: " + driver.Title);
driver.Quit();
System.Console.WriteLine("end of testBrowser");
}
Если я добавляю в наборе данных, чтобы сделать тестовый сценарий управляемыми данными временами Селена, но действиями управляли против браузеров правильно. Кажется, что сетка просто никогда не получает результат узла. В Икаре MbUnit testrunner я вижу, что четыре теста быть бежали, но перерыв. Кодекс создает новый объект WebDriver с каждым выполнением, но мог там быть некоторым другим совместно используемым ресурсом в Селене Grid2, который препятствует тому, чтобы это работало.
private IEnumerable ProvideCapabilities
{
get
{
yield return DesiredCapabilities.Firefox();
yield return DesiredCapabilities.Chrome();
}
}
public IEnumerable ProvideSearchString
{
get
{
yield return "Cheese";
yield return "Bark";
}
}
[Test]
public void testBrowser([Factory("ProvideCapabilities")] ICapabilities browser, [Factory("ProvideSearchString")] string searchString)
{
IWebDriver driver = new RemoteWebDriver(new Uri("http://127.0.0.1:4444/wd/hub"),
browser);
driver.Navigate().GoToUrl("http://www.google.com/");
IWebElement query = driver.FindElement(By.Name("q"));
query.SendKeys(searchString);
query.Submit();
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
wait.Until((d) => { return d.Title.ToLower().StartsWith(searchString); });
System.Console.WriteLine("Page title is: " + driver.Title);
driver.Quit();
System.Console.WriteLine("end of testBrowser");
}