11

QTestLibを使い始めたばかりです。マニュアルチュートリアルを読みました。テストの作成方法は理解していますが、それらのテストを実行しやすくする方法がわかりません。私のユニットテストのバックグラウンドはNUnitとMSTestです。これらの環境では、右ボタンをクリックするだけで、単一のテスト、単一のテストクラスのすべてのテスト、またはプロジェクト全体のすべてのテストの実行を切り替えるのは簡単でした(少なくともGUIを使用)。

QTestLibに表示されているのは、QTEST_MAINマクロを使用して単一のクラスでテストを実行してから、各ファイルを個別にコンパイルしてテストすることだけです。または、を使用QTest::qExec()main()てテストするオブジェクトを定義し、それを手動で変更して、テストクラスを追加/削除するときに再コンパイルします。

私は何かが欠けていると確信しています。簡単にできるようにしたいと思います:

  • 単一のテストメソッドを実行する
  • クラス全体でテストを実行する
  • すべてのテストを実行する

それらのいずれかが適切なセットアップ/ティアダウン関数を呼び出します。

編集:バウンティが利用可能になりました。より良い方法、またはそれを処理するGUIテストランナーが必要です。テスト駆動環境でQtTestを使用している場合は、何が機能しているかをお知らせください。(スクリプト、テストランナーなど)

4

2 に答える 2

6

コマンドライン引数としてテスト名を渡すことにより、選択したテストケース(テストメソッド)のみを実行できます。

myTests.exe myCaseOne myCaseTwo

すべての初期化/クリーンアップも実行されます。残念ながら、ワイルドカード/パターンマッチングはサポートされていないため、指定された文字列で始まるすべてのケースを実行するには(「クラス全体でテストを実行する」という意味だと思います)、スクリプトを作成する必要があります(windows batch / bash / perl / whatever)それは:

myTests.exe -functions

結果を解析し、最初の構文を使用して選択したテストを実行します。

すべてのケースを実行するには、パラメータを渡さないでください。

myTests.exe
于 2010-04-21T21:31:03.360 に答える
1

OPによって要求された3つの機能は、現在QtCreatorに統合されています。

プロジェクトはテストのために自動的にスキャンされ、テストペインに表示されます。スクリーンショットの左下:

QtCreatorのスクリーンショット

チェックボックスをクリックすると、各テストと対応するデータを有効にできます。コンテキストメニューを使用すると、すべてのテスト、クラスのすべてのテスト、選択したテストのみ、または1つのテストのみを実行できます。要求に応じて。

テスト結果はQtCreatorからも入手できます。カラーインジケータは、デバッグメッセージなどの追加情報とともに、各テストの合格/不合格を示します。

Qt Creatorと組み合わせると、QTEST_MAINコンパイルされた各実行可能ファイルがQt Creatorによって自動的に呼び出されるため、各テストケースでマクロを使用するとうまく機能します。

詳細な概要については、QtCreatorマニュアルの「RunningAutotests」セクションを参照してください。

于 2018-01-18T08:17:05.743 に答える