10

Also habe ich eine Anwendung, die ich geerbt habe und ich möchte eine automatisierte Test-Suite um es aufbauen. Die Anwendung wurde nicht auf Testbarkeit ausgelegt, und der Code ist ein "großer Schlammball". Mein Plan war, ein UI-Automation-Testframework zu verwenden und eine Reihe von Tests auf UI-Ebene zu erstellen, bis ich genügend Coverage hatte, um mit dem Refactoring vertraut zu beginnen und einige Nähte in den Code einzubringen, um Testbarkeit und Design zu verbessern.UI-Test-Framework + Kontinuierliche Integration?

Es ist eine .NET WinForms-Anwendung und die beiden Frameworks ich sind uns bewusst bin:

NUnitForms

und

Project White

Von dem, was ich beide Frameworks gelesen haben Pose Probleme beim Ausführen als Teil eines automatisierten Build (Continuous Integration) aufgrund der Tatsache, dass die meisten CI-Produkte als Windows-Dienst ausgeführt werden und wenn die Benutzeroberfläche modale Dialoge verwendet, wird die Anwendung schrecklich sterben Tod. Ich verwende CruiseControl.Net als mein CI-Tool.

Hat jemand irgendwelche Vorschläge, um dieses Problem zu umgehen? Ein alternativer Rahmen, um dies zu nutzen, könnte die Situation verbessern?

Danke,

Dylan

Antwort

2

ich es noch nicht versuchen, aber es gibt die UI Automation Framework von Microsoft:

+2

Ich denke, das ist, was Weiß aufgebaut ist. http://white.codeplex.com/Wiki/View.aspx?title=Layers –

3

Sie tatsächlich Tempomat über die Konsole app laufen, so können Sie interaktive Desktop-Zugriff haben können. Es wird nicht automatisch wiederhergestellt, wenn der Server neu gestartet wird oder es abstürzt, aber zumindest können Sie es tun.

Der Ansatz, den die meisten Benutzer mit automatisierten UI-Tests (winforms, wpf oder web) annehmen, besteht darin, alle nicht interaktiven Tests über den Build-Server auszuführen. Sobald diese Tests bestanden sind, stellen sie die Anwendung in einer Testumgebung bereit und lösen manuell einen Testlauf mit der neu erstellten Version des Codes aus.

Dies gibt den Benutzern die Möglichkeit, die Testumgebung (wichtig für UI-Tests) zurückzusetzen sowie zu überprüfen, ob die neue Version der Anwendung korrekt erstellt wurde und alle Komponententests bestanden wurden. Es macht schließlich keinen Sinn, die UI-Tests auszuführen, wenn Sie wissen, dass die Komponententests fehlgeschlagen sind. :-)

+0

Richtig, aber in meiner Situation habe ich keine anderen Tests. Und jede Test-Suite, die ich erstelle, möchte ich auf jeden Fall automatisiert laufen lassen, sonst riskieren wir, dass die Tests "verrotten" und nutzlos werden, wenn sie kaputt gehen und niemand sie anschaut ... Gute Informationen über die cc.net Konsole app tho –

1

Wir haben die Continuous Integration Acceptance Tests im Konsolenmodus statt als Windows-Dienst in einem angemeldeten Virtual PC ausgeführt. Das hat für uns funktioniert.

Verwandte Themen