Pergunta

Como eu corro Caso de testeé do IDE?

Eu criei um novo projeto, com uma forma simples, simples:

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.

Agora vou adicionar um caso de teste para verificar se empurrar Button1 faz o que 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.

Dado o que eu fiz (código de teste no projeto GUI), como agora faço uma execução dos testes? Se eu empurrar F9 Então o formulário simplesmente aparece:

alt text

Idealmente, haveria um botão ou opção de menu, no IDE dizendo Execute testes de dunit:

alt text

Estou morando em um mundo dos sonhos? Uma terra de fantasia, morando em uma casa de gumdrop em Lollipop Lane?

Foi útil?

Solução

Eu concordo com Uwe Raabe, mas às vezes pode ser útil ter um link 'oculto' no seu aplicativo para executar a GUI da Dunit. Eu uso:

TGUITestRunner.runRegisteredTests;

Ligue para isso do seu botão na GUI da Dunit abrirá para você executar manualmente e visualizar a saída de teste.


Por exemplo, se você segurar uma combinação de chave especial ao abrir o próprio software "Painel de controle", você obtém algumas entradas avançadas:

enter image description here

Outras dicas

Adicionar um teste ao projeto principal não é o caminho a seguir. Você deve criar um projeto de teste separado (você pode tê -lo no mesmo grupo de projeto do projeto principal), adicionar um teste e executar.

Eu gosto da ideia de ter um 'Run DUnit tests' comando no IDE.

Pode ser implementado verificando um projeto de dunit na mesma pasta, com o mesmo nome do projeto atual:

  • Project1.dpr -> O software em teste
  • Project1.tests.dpr => O aplicativo de teste de dunit

Nesse caso, o IDE deve ativar o comando Run Dunit Tests.

  • Após a execução dos testes, uma lista de todos os testes falhados deve ser exibida, o que permite pular para a linha de origem onde um teste fracassado.

  • Se os testes causaram vazamentos de memória, uma lista de todos os vazamentos deve ser exibida, que permite pular para a linha de origem onde O vazamento de memória foi criado

(Dunit pode ser configurado para detectar vazamentos de memória e falhar nos testes quando é encontrado)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top