Pregunta

¿Cómo se ejecuta TestCase 's desde el IDE?

He creado un nuevo proyecto, con una única y sencilla, la forma:

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.

Ahora voy a añadir un caso de prueba para comprobar que empujar Button1 hace lo que debe:

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.

Teniendo en cuenta lo que he hecho (código de prueba en el proyecto GUI), ¿cómo ahora se activan una racha de las pruebas? Si empujo F9 entonces la forma simplemente aparece:

alt text

Lo ideal sería un botón, u opción de menú, en el IDE diciendo Realización de pruebas DUnit

alt text

¿Estoy viviendo en un mundo de sueños? Una tierra de fantasía, vivir en una casa pastilla de goma en el carril de piruleta?

¿Fue útil?

Solución

Estoy de acuerdo con Uwe Raabe, pero a veces puede ser útil disponer de un enlace 'oculta' dentro de su aplicación para ejecutar la interfaz gráfica de usuario DUnit. Yo uso:

TGUITestRunner.runRegisteredTests;

Llama a esta desde el botón en la interfaz gráfica de usuario DUnit se abrirá para que usted pueda ejecutar de forma manual y la salida de vista de prueba.


Por ejemplo, si se mantiene pulsado una combinación de teclas especial al abrir propios "Panel de control" , que recibe algunas entradas avanzadas del software:

introducir descripción de la imagen aquí

Otros consejos

La adición de un TestCase al proyecto principal no es el camino a seguir. Se debe crear un TestProject separado (se puede tener en la misma medida que el proyecto ProjectGroup principal), añadir un TestCase y correr.

Me gusta la idea de tener un comando 'Run DUnit tests' en el IDE.

Podría ser implementada mediante la comprobación de un proyecto DUnit en la misma carpeta, que tienen el mismo nombre que el proyecto actual:

  • Project1.dpr -> el software bajo prueba
  • Project1.Tests.dpr => la aplicación de prueba DUnit

En este caso, el IDE debe permitir la ejecución de comandos DUnit prueba.

  • Después de ejecutar las pruebas, una lista de todas las pruebas fallidas se debe mostrar lo que permite saltar a la línea de origen en una prueba de no .

  • Si las pruebas causaron pérdidas de memoria, una lista de todas las fugas se debe mostrar lo que permite saltar a la línea fuente donde la pérdida de memoria se ha creado

(DUnit se puede configurar para detectar pérdidas de memoria y fallar pruebas cuando uno ha sido encontrado)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top