Тестовый метод из базового класса не выполняется после выполнения тестового метода из производного класса
У меня есть тестовый класс Navigation, и у меня есть производный класс LeadExTest, производный от класса Navigation. Оба класса имеют тип [TestClass]
Теперь у меня есть упорядоченный тестовый файл, в котором есть несколько тестов, которые мне нужно выполнить в порядке, показанном ниже. AdminLogin сделать некоторые действия, чтобы выйти из браузера
AdminLogin, перейдите на страницу и выйдите из методов тестирования браузера, принадлежащих к классу Navigation, и выполните некоторые действия, принадлежащие к классу leadextest
Когда я выполняю этот упорядоченный тестовый файл, администратор входит в систему и выполняет некоторые тестовые примеры действий, которые выполняются просто отлично, но метод выхода из браузера не получает успеха.
//Base class
public class Navigation
{
protected static IWebDriver driver;
protected WebDriverWait wait;
protected StringBuilder verificationErrors;
private string baseURL;
//private bool acceptNextAlert = true;
protected static string advertiserId = "6570";
protected static Actions builder;
[TestInitialize]
public void SetupTest()
{
if (driver == null)
{
driver = new FirefoxDriver();
driver.Manage().Window.Maximize();
baseURL = ConfigurationManager.AppSettings["base_url"].ToString();
verificationErrors = new StringBuilder();
//string url = @"https://stage.madisonlogic.com/login.aspx";
//driver.Navigate().GoToUrl(url.ToString());
driver.Navigate().GoToUrl(ConfigurationManager.AppSettings["test_url"].ToString());
builder = new Actions(driver);
}
wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
}
[TestMethod]
public void adminLogin()
{
CommonFunctions.Login(driver, "rlodha", "a");
if (IsElementPresent(By.ClassName("TopTitle")))
Assert.AreEqual("Admin Center | Dashboard", driver.FindElement(By.ClassName("TopTitle")).Text.Trim().ToString());
else
Assert.Fail("Timed Out");
}
[TestMethod]
public void browserQuit()
{
CommonFunctions.BrowserQuit(driver);
Assert.IsNull(driver);
}
//derived class
[TestMethod]
public void Nav_Lead_Delivery()
{
builder.MoveToElement(driver.FindElement(By.Id("Content_AdvertiserMenu1_LeadsBtn"))).Perform();
driver.FindElement(By.Id("Content_AdvertiserMenu1_LeadExportBtn")).Click();
Console.Write("Hi");
}
1 ответ
Ну, вы просто объявляете это как еще один метод тестирования, так что, конечно, это не сработает.
Вам нужно дать MSTest гораздо больше информации о том, когда вызывать ваш метод, поэтому замените его ClassCleanup, чтобы MSTest вызывал этот метод после завершения всех тестов.