Вопрос

Как мне бежать Прецедентэто из 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

Я живу в мире снов?Страна фантазий, жизнь в мармеладном домике на леденцовом переулке?

Это было полезно?

Решение

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

TGUITestRunner.runRegisteredTests;

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


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

enter image description here

Другие советы

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

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

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

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

В этом случае IDE должна включить команду «Выполнить тесты DUnit».

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top