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.
Учитывая, что я сделал (тестовый код в проекте с графическим интерфейсом), как мне теперь запустить прогон тестов? Если я нажму F9, то форма просто появится:
![alt text]()
В идеале в IDE должна быть кнопка или опция меню, в которой говорится " Выполнить тесты DUnit":
![alt text]()
Живу ли я в мире грез? Фэнтезийная земля, живущая в леденце на леденце?
Ответы
Ответ 1
Я согласен с Uwe Raabe, но иногда бывает полезно иметь "скрытую" ссылку в вашем приложении для запуска GUI DUnit. Я использую:
TGUITestRunner.runRegisteredTests;
Вызовите это с помощью кнопки в графическом интерфейсе DUnit, чтобы вы могли вручную запускать и просматривать тестовый результат.
Например, если вы удерживаете специальную комбинацию клавиш при открытии программного обеспечения собственной "Панель управления", вы получаете несколько дополнительных записей:
![enter image description here]()
Ответ 2
Добавление TestCase к основному проекту - это не путь. Вы должны создать отдельный TestProject (вы можете иметь его в той же ProjectGroup, что и основной проект), добавить TestCase и запустить.
Ответ 3
Мне нравится идея иметь команду 'Run DUnit tests'
в среде IDE.
Он может быть реализован путем проверки проекта DUnit в той же папке с тем же именем, что и текущий проект:
- Project1.dpr → тестируемое программное обеспечение
- Project1.Tests.dpr = > приложение DUnit test
В этом случае среда IDE должна включить команду Run DUnit tests.
-
После выполнения тестов должен отображаться список всех неудачных тестов, которые позволяют перейти к исходной строке, где тест не удалось.
-
Если тесты вызвали утечку памяти, должен отображаться список всех утечек, что позволяет перейти к исходной строке, где утечка памяти была создана
(DUnit может быть сконфигурирован для обнаружения утечек памяти и тестов отказа при обнаружении)