2016-04-28 4 views
-1

Ich habe eine Lösung mit einem WinForm und einem codierten UI-Testprojekt. Ich möchte meine WinForm-Anwendung mit einem codierten UI-Test testen.C# codiertes UI-Projekt. Codierter UI Test Builder zeichnet WinForm nicht auf

Wenn ich meine Aktionen mit dem Builder für UI-Test aufzeichne, wird der Start meiner WinForm-Anwendung nicht aufgezeichnet! Alles andere wie das Klicken auf Schaltflächen wird aufgezeichnet.

Also, wenn ich dann meinen Test laufen sie versagt der Test kann dazu führen, nicht die WinForm (natürlich) finden ...

Aber warum ist das so? Kann ich Code in der Testmethode hinzufügen, um die Winform-Anwendung zu starten?

Vielen Dank für Hilfe

Antwort

1

Wenn Sie codierte UI möchten Ihre Formularanwendung auf Beginn einer Prüfung starten, verwenden Sie die Methode

ApplicationUnderTest.Launch("FORMS_APP_PATH"); 

Sie können die genaue Methode Details auf MSDN überprüfen.

Update:

Um Änderungswege zu umgehen habe ich eine neue Lösung Formulare und nannte es LabPlus. Ich fügte dann ein CodedUI-Testprojekt hinzu. Im Testprojekt habe ich die Referenz der LabPlus-Baugruppe hinzugefügt. Danach schrieb ich in meiner CUI Testmethode folgende Zeile:

ApplicationUnderTest.Launch(System.Reflection.Assembly.GetAssembly(typeof(LabPlus.Form1)).Location); 

Ich hoffe, dass dies Ihre Frage beantwortet :)

+0

Also müssen Sie zuerst Ihre Lösung erstellen und dann die .exe-Datei der Anwendung verknüpfen? Ich tat das jetzt ... es funktioniert! Was passiert, wenn sich das Verzeichnis immer ändert? Weil viele Leute diese Lösung von einem TFS bekommen und irgendwo auf ihren Computern speichern? –

+0

Ja, du hast Recht. Zum Ändern von Verzeichnissen versuchen Sie, einen relativen Pfad mithilfe von Punkten und Backslashes zu erstellen. Eine andere Option kann eine der folgenden Eigenschaften verwenden: TestContext.DeploymentDirectory TestContext.TestRunDirectory –

+0

Es ist auch möglich, der App.config-Datei für die codierte UI einen vollständigen Pfad hinzuzufügen. –

0

Mein fix:

  1. Referenz von Testprojekt WinForm Projekt hinzufügen
  2. schmücken Testklasse mit [DeploymentItem('your-app.exe')] Attribut
  3. hinzufügen ApplicationUnderTest.Launch("your-app.exe"); zu der Testmethode