Domanda

Come faccio a eseguire TestCase's IDE?

ho creato un nuovo progetto, con un unico, semplice 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.

Ora vorrei aggiungere un banco di prova per verificare che spinge Button1 fa quello che deve:

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.

Dato quello che ho fatto (codice di test nella GUI del progetto), come faccio ora a innescare un run di test?Se spingo F9 quindi il modulo appare semplicemente:

alt text

Idealmente si dovrebbe essere un pulsante, o l'opzione di menu, in IDE dicendo Eseguire DUnit Test:

alt text

Sto vivendo in un sogno?Una terra di fantasia, di vivere in un gumdrop casa su lollipop lane?

È stato utile?

Soluzione

Sono d'accordo con Uwe Raabe, ma a volte può essere utile avere un collegamento 'nascosto' all'interno della vostra applicazione per eseguire la GUI dunit. Io uso:

TGUITestRunner.runRegisteredTests;

Chiamare questo dal pulsante nella parte GUI dunit si aprirà per voi per eseguire manualmente e in uscita vista di prova.


Ad esempio, se si tiene premuto uno speciale combinazione di tasti durante l'apertura del software, proprio "Pannello di controllo" , si ottiene alcune voci avanzate:

entrare descrizione dell'immagine qui

Altri suggerimenti

L'aggiunta di un TestCase al progetto principale non è la strada da percorrere. È necessario creare un TestProject separata (si può avere nella stessa ProjectGroup come il progetto principale), aggiungere un TestCase e correre.

Mi piace l'idea di avere un 'Run DUnit tests' comando nell'IDE.

Potrebbe essere implementato in modo da verificare un DUnit progetto nella stessa cartella con lo stesso nome come il progetto corrente:

  • Progetto1.dpr -> il software in prova
  • Progetto1.I test.dpr => il DUnit applicazione di test

In questo caso, l'IDE dovrebbe consentire l'Esecuzione di DUnit test di comando.

  • Dopo l'esecuzione di prove, un elenco di tutti i test falliti dovrebbe essere visualizzato il che permette di saltare l'origine riga in cui il test impossibile.

  • Se il test ha causato perdite di memoria, un elenco di tutte le perdite devono essere visualizzato il che permette di saltare alla riga di origine dove la perdita di memoria è stata creata

(DUnit può essere configurato per rilevare perdite di memoria e a mancare le prove, quando si è trovato)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top