#c# #visual-studio #selenium #ienumerable #xunit
#c# #visual-studio #селен #ienumerable #xunit
Вопрос:
У меня есть набор тестов, которые загружаются динамически с помощью ClassData
декоратора:
using Xunit;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Interactions;
using System.Collections.Generic;
namespace reviewWebApp.UITests
{
public class ticketFieldWebAppShould
{
[Trait("Category", "Smoke")]
[Xunit.Theory]
[ClassData(typeof(repositories.readForms))]
public void LoadForms(string formNo , List<string> elemList)
{
using(IWebDriver driver = new ChromeDriver())
{
driver.Navigate().GoToUrl("http://localhost:61851/");
DemoHelper.Pause();
driver.SwitchTo().Alert().SendKeys(formNo);
driver.SwitchTo().Alert().Accept();
Actions action = new Actions(driver);
DemoHelper.Pause();
action.KeyDown(Keys.Control);
action.KeyDown(Keys.Alt);
action.Build().Perform();
driver.SwitchTo().Alert().SendKeys(elemList[0]);
driver.SwitchTo().Alert().Accept();
driver.SwitchTo().Alert().Accept();
}
}
}
}
Класс, содержащий данные, находится в отдельном файле:
using System.Collections.Generic;
using System.Collections;
namespace reviewWebApp.UITests.repositories
{
public class readForms : IEnumerable<object[]>
{
public IEnumerator<object[]> GetEnumerator()
{
for (int i = 1; i < 3; i )
{
yield return new object[] { "t" i, new List<string> { "f", "" } };
}
}
IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
}
}
Поскольку цикл for выполняется дважды, я бы ожидал, что количество тестов будет составлять 2 отдельных теста в обозревателе тестов.
Однако в проводнике тестов я вижу 1 тест, который дважды откроет chrome.
Проблема в том, что если тест завершится неудачно, я не буду знать, где или какой, поскольку существует только один тест. Возможно ли разложить код на два разных динамически загружаемых теста?