Ich brauche eine gute Übung, um mit meinem Problem umzugehen.Wie wird die Umgebung konfiguriert, bevor automatisierte Tests ausgeführt werden?
Das Problem ist: Ich muss automatische Tests für eine Website ausführen. Die Website hat verschiedene Konfigurationen, die das Design (auf einigen Seiten) komplett ändern. Zum Beispiel kann ich 2 verschiedene Login-Seiten konfigurieren. Und ich muss beide testen.
Zuerst Ich muss sicherstellen, dass ein korrekter Test gegen eine korrekte Konfiguration ausgeführt wird. Also muss ich vor jedem Test die Konfiguration der Seite ändern. Es ist nicht gut, wenn ich tausend Tests habe.
Also eine Lösung, die mir in den Sinn kommt ist nicht die Seite jedes Mal neu konfigurieren, aber tun Sie es einmal und führen Sie alle Tests, die dieser Konfiguration entsprechen. Aber diese Lösung scheint mir nicht leicht zu machen.
Für jetzt, was ich tat ist: Ich erstellte eine Methode, die einmal vor allen anderen Tests ausgeführt wird, und in dieser Methode konfiguriere ich die Website zu Config, die in den meisten Tests verwendet werden. Alle anderen Tests ändern die Konfiguration vor der Ausführung und ändern sie nach der Ausführung wieder. Es ist überhaupt nicht gut.
Dazu verwendete ich NUnit3 SetUpFixture und OneTimeSetUp Attribute:
/// <summary>
/// Runs once before all the test in order to config the environment
/// </summary>
[SetUpFixture]
public class ConfigTests
{
[OneTimeSetUp]
public void RunBeforeAnyTests()
{
IWebDriver driver = new ChromeDriver();
try
{
//Here I config the stie
CommonActions actions = new CommonActions(driver);
actions.SwitchOffCombinedPaymentPage();
driver.Dispose();
}
catch (Exception)
{
driver.Dispose();
}
}
}
Was ich danach gedacht ist, dass ich in der Lage sein werden Parameter SetUpFixture zu senden, aber vor allem ist es unmöglich, und Zweitens wird das Problem nicht gelöst, da diese Funktion nur zweimal ausgeführt wird und die Tests mit der letzten Konfiguration ausgeführt werden.
Also Jungs, wie man mit einer Website testen, die viele Konfigurationen hat?