10

IDEからTestCaseを実行するにはどうすればよいですか?

単一のシンプルなフォームで新しいプロジェクトを作成しました。

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と、フォームが表示されます。

代替テキスト

理想的には、IDEに「DUnitテストの実行」というボタンまたはメニューオプションがあります。

代替テキスト

私は夢の世界に住んでいますか?ロリポップレーンのガムドロップハウスに住むファンタジーランド?

4

3 に答える 3

12

メインプロジェクトにTestCaseを追加することは、進むべき道ではありません。別のTestProjectを作成し(メインプロジェクトと同じProjectGroupに含めることができます)、TestCaseを追加して実行する必要があります。

于 2010-03-22T16:16:07.630 に答える
6

Uwe Raabeに同意しますが、DUnitGUIを実行するためにアプリ内に「非表示」リンクがあると便利な場合があります。私が使う:

TGUITestRunner.runRegisteredTests;

DUnit GUIのボタンからこれを呼び出すと、手動で実行してテスト出力を表示できるようになります。


たとえば、ソフトウェア自体の「コントロールパネル」を開くときに特別なキーの組み合わせを押し続けると、いくつかの高度なエントリが表示されます。

ここに画像の説明を入力してください

于 2010-03-22T16:22:16.263 に答える
2

'Run DUnit tests'IDEにコマンドを入れるというアイデアが好きです。

これは、現在のプロジェクトと同じ名前の同じフォルダー内のDUnitプロジェクトをチェックすることで実装できます。

  • Project1.dpr- >テスト中のソフトウェア
  • Project1.Tests.dpr =>DUnitテストアプリ

この場合、IDEはRunDUnittestsコマンドを有効にする必要があります。

  • テストの実行後、失敗したすべてのテストのリストが表示され、テストが失敗したソース行にジャンプできます。

  • テストによってメモリリークが発生した場合は、すべてのリークのリストを表示して、メモリリークが発生したソース行にジャンプできるようにする必要があります。

(DUnitは、メモリリークを検出し、見つかったときにテストに失敗するように構成できます)

于 2010-03-22T18:56:02.240 に答える