Тестовый метод из базового класса не выполняется после выполнения тестового метода из производного класса

У меня есть тестовый класс 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 вызывал этот метод после завершения всех тестов.

Другие вопросы по тегам