Frage

Wie führe ich Testcase 's aus den IDE?

i erstellt ein neues Projekt, mit einem einzigen, einfachen, Form:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
  private
  public
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

end.

Jetzt werde ich einen Testfall hinzufügen zu prüfen, ob Button1 schieben tut, was es soll:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
     Button1: TButton;
     procedure Button1Click(Sender: TObject);
  private
  public
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

uses
    TestFramework;

type
  TForm1Tests = class(TTestCase)
  private
        f: TForm1;
  protected
     procedure SetUp; override;
     procedure TearDown; override;
  published
     procedure TestButton1Click;
  end;

procedure TForm1.Button1Click(Sender: TObject);
begin
    //todo
end;

{ TForm1Tests }

procedure TForm1Tests.SetUp;
begin
  inherited;

    f := TForm1.Create(nil);
end;

procedure TForm1Tests.TearDown;
begin
    f.Free;
  inherited;
end;

procedure TForm1Tests.TestButton1Click;
begin
    f.Button1Click(nil);
    Self.CheckEqualsString('Hello, world!', f.Caption);
end;

end.

Nach dem, was ich getan habe (Test-Code in dem GUI-Projekt), wie auslösen ich jetzt einen Lauf der Tests? Wenn ich drücken F9 dann einfach das Formular angezeigt wird:

Im Idealfall wäre es eine Taste sein oder Menüoption in der IDE zu sagen Ausführen DUnit Tests :

Lebe ich in einer Traumwelt? Ein Fantasy-Land, auf Lollipop Lane in einem gumdrop Hause leben?

War es hilfreich?

Lösung

Ich bin mit Uwe Raabe, aber manchmal kann es nützlich sein, einen ‚versteckten‘ Link in Ihrer App zu haben, das DUnit GUI laufen. Ich benutze:

TGUITestRunner.runRegisteredTests;

Rufen Sie diese von Ihrem Button am DUnit GUI öffnet sich für Sie manuell ausgeführt und Ansicht Testausgang.


Zum Beispiel, wenn Sie halten Sie eine spezielle Tastenkombination beim Öffnen der eigenen Software „Systemsteuerung“ , Sie einige erweiterte Einträge erhalten:

eingeben Bild Beschreibung hier

Andere Tipps

ein Testcase in das Hauptprojekt Hinzufügen ist nicht der Weg zu gehen. Sie sollten eine separate Testproject (Sie können sie haben in der gleichen Projektgruppe als Hauptprojekt) erstellen, ein Testcase und Lauf hinzufügen.

Ich mag die Idee, einen 'Run DUnit tests' Befehl in der IDE zu haben.

Es könnte durch Überprüfung für ein DUnit Projekt im selben Ordner implementiert werden, die denselben Namen wie das aktuelle Projekt mit:

  • Project1.dpr -> die zu testende Software
  • Project1.Tests.dpr => die DUnit Test-App

In diesem Fall sollte die IDE den Run DUnit-Tests Befehl aktivieren.

  • Nachdem die Tests ausgeführt wird, wird eine Liste aller nicht bestandenen Tests angezeigt werden soll, die mit der Source-Leitung zu springen, wo ein Test ist fehlgeschlagen .

  • Wenn die Tests Speicherlecks verursacht, wird eine Liste aller Lecks angezeigt werden soll, die mit der Source-Leitung zu springen, wo der Speicherverlust erstellt wurde

(DUnit konfiguriert werden kann, um Speicherlecks zu erfassen und Tests fehlschlagen, wenn eine gefunden wurde)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top