DUnit: Как запустить тесты?

Как я выполняю TestCase от IDE?

я создал новый проект, с синглом, простым, форма:

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.

Теперь я добавлю тестовый сценарий для проверки того продвижения Button1 делает то, что это должно:

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.

Учитывая какой я сделал (тестовый код в проекте GUI), как я теперь инициировал выполнение тестов? Если я продвигаю F9 затем, форма просто появляется:

alt text

Идеально была бы кнопка или пункт меню, в Выполнении высказывания IDE Тесты DUnit:

alt text

Я живу в сказочной стране? Фэнтезийная земля, живущая в gumdrop, содержится на маршруте леденца на палочке?

10
задан Glorfindel 4 July 2019 в 22:06
поделиться

3 ответа

Я согласен с Уве Раабе, но иногда бывает полезно иметь в приложении «скрытую» ссылку для запуска графического интерфейса DUnit. Я использую:

TGUITestRunner.runRegisteredTests;

Вызовите это с помощью вашей кнопки в графическом интерфейсе DUnit, который откроется для вас, чтобы вручную запустить и просмотреть результаты теста.


Например, если вы удерживаете специальную комбинацию клавиш при открытии собственной «Панели управления» программы, вы получите несколько дополнительных записей:

enter image description here

6
ответ дан 3 December 2019 в 19:32
поделиться

Добавление TestCase в основной проект - не лучший вариант. Вы должны создать отдельный TestProject (вы можете разместить его в той же ProjectGroup, что и основной проект), добавить TestCase и запустить.

12
ответ дан 3 December 2019 в 19:32
поделиться

Мне нравится идея иметь команду 'Run DUnit tests' в IDE.

Его можно реализовать, проверив наличие проекта DUnit в той же папке, с тем же именем, что и текущий проект:

  • Project1.dpr -> тестируемого программного обеспечения
  • Project1.Tests.dpr => тестовое приложение DUnit

В этом случае в IDE должна включиться команда Run DUnit tests.

  • После выполнения тестов, должен отобразиться список всех неудачных тестов, который позволяет перейти к исходной строке, где тест failed.

  • Если тесты вызвали утечку памяти, должен быть отображен список всех утечек, который позволяет перейти к исходной строке, где была создана утечка памяти

(DUnit может быть настроен для обнаружения утечек памяти и неудачных тестов, когда они были найдены)

2
ответ дан 3 December 2019 в 19:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: