Um mehr Details zu geben, haben wir eine Reihe von Tests, die wir in drei Frameworks duplizieren wollen (mit Selen für die UI-Stimulation): IE, Mozilla und Chrome. Die erste Lösung bestand darin, die Tests in separaten Testklassen zu duplizieren, d. H. Jede Testklasse hatte die gleichen 20 Testfälle mit einem anderen Framework im Konstruktor. Die zweite Lösung wurde zu parametrisierten Eingänge (oder eine XUnit Theorie) zu verwenden, um mit jedem Rahmentyp als Eingang:Wie kann ich automatisierte Integrationstests über mehrere Frameworks (Internet-Browser) hinweg verwenden, ohne dass der Aufwand verdoppelt wird?
/// <summary>
/// The non-default constructor that initializes
/// necessary instances of objects that are being used
/// </summary>
public VerifyViewUsingChrome() {
_testBases = new Dictionary<FunctionalTestBase.DriverType, TestBase>();
_testBases.Add(FunctionalTestBase.DriverType.Chrome, new TestBase(FunctionalTestBase.DriverType.Chrome));
_testBases.Add(FunctionalTestBase.DriverType.IE, new TestBase(FunctionalTestBase.DriverType.IE));
_testBases.Add(FunctionalTestBase.DriverType.FireFox, new TestBase(FunctionalTestBase.DriverType.FireFox));
}
/// <summary>
/// Our simple country display test.
/// </summary>
[InlineData(FunctionalTestBase.DriverType.Chrome)]
[InlineData(FunctionalTestBase.DriverType.FireFox)]
[InlineData(FunctionalTestBase.DriverType.IE)]
[Theory]
public void TestADisplayedForACountry(FunctionalTestBase.DriverType testBase) {
_testBases[testBase].TestADisplayedForACountry();
}
Das Problem bei dieser Implementierung ist, dass alle 3 Implementierungen für jeden Test ausgeführt werden müssen, die einige erfordert Overhead. Im Idealfall würden wir alle IE-Tests durchführen, dann das Firefox-Framework erstellen und diese Tests durchführen, bevor wir mit Chrome fortfahren.
Es kann nicht möglich sein, ein Testframework zu verwenden, aber wir haben praktische Verbindungen mit unserem Buildserver, so dass das Testformat ideal wäre.
Verwenden Sie Selen? – trailmax
Ja. So stimulieren wir die Benutzeroberfläche. –
Vielleicht hätte das in der Frage oder den Tags erwähnt werden sollen. Aber jetzt ist es kein Problem - Sie haben die Lösung gefunden, die zu Ihnen passt. – trailmax