0
geladen wird

ich mein Github Profil Automatisierung und Im Folgenden sind meine Testfälle:Selen UI-Tests: TestCleanup() beendet Rest der Tests nach dem ersten Test

  • Last Browser (dies in TestInitialize definiert ist()
  • laden URL
  • Anmeldung Perform Unten finden Sie das Code-snippet:

Namespace GitAutomationTest { uns Microsoft.VisualStudio.TestTools.UnitTesting; mit OpenQA.Selenium.IE; mit OpenQA.Selenium.Remote; mit System; [TestClass] öffentliche Klasse GitTest { private Zeichenfolge baseURL = "https://github.com/login"; privater RemoteWebDriver-Treiber; public TestContext TestContext {get; einstellen; }

 [TestMethod] 
    public void LoadURL() { 
      driver.Navigate().GoToUrl(baseURL); 
      Console.Write("Loaded URL is :" + baseURL); 
     } 
     [TestMethod] 
     public void PerformLogin() { 
      driver.FindElementById("login_field").SendKeys("USERNAME"); 
      driver.FindElementById("password").SendKeys("PASSWORD"); 
      Console.Write("password entered \n "); 
      driver.FindElementByClassName("btn-primary").Click(); 
      driver.GetScreenshot().SaveAsFile(@"screenshot.jpg", format: System.Drawing.Imaging.ImageFormat.Jpeg); 
      Console.Write("Screenshot Saved: screenshiot.jpg"); 
     } 
     [TestCleanup()] 
     public void MyTestCleanup() 
     { 
      driver.Quit(); 
     } 
     [TestInitialize()] 
     public void MyTestInitialize() 
     { 
      driver = new InternetExplorerDriver(); 
      driver.Manage().Window.Maximize(); 
      Console.Write("Maximises The window\n"); 
      driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(20)); 
     } 
    } 
} 

OUTPUT
Jedesmal, betreibe ich alle Tests: - Test initialisiert wird: der Internet Explorer geladen wird - Die URL Basis geladen - Dann verlässt der Fahrer mit TestCleanUP()

Das nächste Mal, wenn der Treiber testperformLogin() ausführt - Der Test kann die Benutzernamen und Kennwortelemente für die Anmeldung nicht finden, weil die Basis-URL diesmal nicht geladen wurde.

Wie können wir die TestInitialize() der Klasse, so dass verwalten: - Browser liegt mit baseurl, bis alle Tests abgeschlossen sind. Wie können wir TestCleanup() so verwalten, dass: - Browser schließt erst, nachdem alle Tests abgeschlossen sind.

+0

Warum sollte man das Nunit-Testframework nicht ausprobieren? Bitte sehen Sie es sich an. http://nunit.org/index.php?p=docHome&r=2.6.4 – Aishu

Antwort

0

Es gibt ein AssemblyCleanup Attribut, das ausgeführt wird, nachdem alle Tests ausgeführt wurden.

Hier finden Sie weitere Informationen zu den Attributen - Unit Testing Framework.

0

Sie müssen sich bewegen folgenden Code zu "PerformLogin" Testmethode

driver.Navigate().GoToUrl(baseURL); 

oder einen anderen Ansatz folgenden Code hinzufügen zu in "Mytestinitialize" Verfahren und entfernen "LoadURL" Methode

driver.Navigate().GoToUrl(baseURL); 

Sie stehen vor dem Problem, dass [TestInitialize] vor jedem [TestMethod] aufgerufen wird und [TestCleanup] nach jedem [TestMethod] aufgerufen wird.

In Ihrem Fall kann "LoadURL" test die URL abrufen, aber "PerformLogin" kann die URL nicht abrufen, da sie in "MyTestInitialize" nicht erwähnt wird.

Verwandte Themen