Eclipseで単一のJUnitテストを実行する


85

複数のテストを含むテストスイートがある場合、コードエディターのコンテキストメニューまたはJUnitビューから単一の単体テストを実行しようとすると、スイート全体を実行するのではなく、常にスイート全体を実行する必要があるようです。単一のテスト。この動作を無効にして、テストを実行するように依頼できるようにする方法はありますか?


11
答えの横にある緑色のマークをチェックして、最良の答えを選んだらいいのにと思います。
guerda 2010

回答:


96

パッケージエクスプローラーでクラスを展開します。すべてのメソッドが表示されます。実行するメソッドを1つ右クリックし、コンテキストメニューから[実行]-> [JUnit]を選択します(Eclipse 3.4.1でテスト済み)。また、JUnit結果ビューの単一のエントリで[実行]を選択してテストを再実行することも同じように機能します。


3
残念ながら、これはそのクラスに直接実装されているテストメソッドでのみ機能します。継承された@Testメソッドでは機能しません。
クリストファーバーバー

1
メソッド名をクリックする必要があるように見えることに注意してください。メソッド内をクリックすると、クラス全体が実行されます。(または、少なくともそれが私にとっての振る舞いです。)
emragins 2015年

この1つの特定の「パッケージエクスプローラー」から作業するだけで、テストしたいメソッドをすばやく見つけるのに不便です。それでも、デバッガーは他のメソッドをスキップするように継ぎ目があり、余分な時間がかかります。もっと良い方法があるに違いありません...
Macilias

そしてそれも壊れやすいです...今、eclipseはこの方法で実行するときに他のテストをスキップしないことに決めました:(
Macilias 2015

26

私が知っている最速の方法:

  1. Ctrl+ Shift+ (カーソルを現在のメソッド宣言に移動)を押し、
  2. プレスAlt+ Shift+ x(またはdデバッグ用)を押しますt(ホットキー「ファイル名を指定して実行JUnitのテスト」)、
  3. テスト結果を確認し、
  4. Alt+を押して、前のコード行に戻ります。

すべてのテストを実行する場合は、手順1と4をスキップできます。


13

Eclipse 3.5では、テストランナーをJUnit 3に変更することでこれを回避できます。これは、JUnit4テストではなくJUnit3テストでのみ機能します。次の手順でテストランナーを変更できます。

  1. アウトラインエクスプローラーでテスト方法の1つを右クリックします
  2. [実行]-> [構成の実行]を選択します
  3. [テスト]タブで、[単一のテストを実行する]を選択します
  4. Test Runnerドロップダウンで、「JUnit3」を選択します

他のバージョンでも機能する可能性があります。


グッドコール!Eclipse 3.6.0(Helios)では、実行構成ダイアログで「TestRunner」を「JUnit3」に変更するとうまくいきました。これで、JUnitテストで単一のメソッドを実行できます。FWIW、個々のJUnit3または4のテストクラスの実行で問題が発生したことはありません。
Adam Monsen 2010

完璧なこれは私にもうまくいきました。これ以上の答えは、賛成票が多いように見えますが、そうではありませんでした。
dreza 2011

12

これは、JUnit4.8.2を使用するEclipseIndigoで可能です。Outlineペインで個別に単体テストを行う方法を右クリックし、を選択しますRun As -> JUnit Test

ソースエディタでテストメソッド名を選択的に右クリックして、を選択することもできますRun As -> Junit Test


1
その特定のテストケースをテストするようです。ただし、その後も他のテストケースで続行されます。
lwpro2 2013年

@ lwpro2単一のテストケースをテストするには、JUnit 4(アノテーション)を使用する必要があります。JUnit 3(extend TestCase)は、関連するすべてのテストを引き続き実行します。
AnthonyW 2013

1
wulfgar.pro @ lwpro2に、JUnit 4ランナーでJUnitテストを実行している場合(たとえば、JUnit 4.8.2を使用しているため)、テストがまだTestCaseを拡張している場合、単一のテストを実行できないことを通知しました。単独でテストします。JUnit 3ランナーを使用するか、テストをアノテーションを使用するように変換する必要があります。
AnthonyW 2013

コメントありがとうございます。しかし、私はSpringJunit4ClassRunnerでJunit4を使用していました。とにかく、大したことではありません。注釈をコメントオフするのは簡単です。
lwpro2 2013

この答えは最も簡単です
Jackson Tale

9

使用しないでくださいStrg+F11が、ホットキーAlt+ Shift+ X- > T
次に、Eclipseは現在開いているファイルをJUnitテストとして実行します。緑色の再生ボタンは、最後に選択した実行構成のみを実行します。

私にとって、それがうまく機能しますAlt+ Shift+ X> - T


ありがとう。ただし、単体テストでテストされているクラスで作業しているとします。クラスを変更するときに、ウィンドウをUnitTestファイルに切り替えずに、対応するUnitTestをどのように実行しますか?
bibstha 2012年

@bibstha Ctrl + 3を使用して、「rerun」と入力できます。これにより、最後のJUnitテストケースを再実行できます。[ウィンドウ]-> [設定]-> [一般]-> [キー]で、このアクションに独自のショートカットを割り当てることができます。私の意見では、Ctrl + Shift + F11が適しています。
guerda 2012年

9

単一の単体テスト(メソッド)をデバッグできる、生産性の高いキーボードのみの方法を含めることで、他のユーザーに追加します。

いずれかを使用して、カーソルをメソッド名に移動します

  • Ctrl+ Shift+Upまたは
  • Ctrl+ Shift+Downまたは
  • Ctrl+o次にメソッドの名前を入力します

カーソルがメソッド名(またはその直前)にあると:

  • Alt+ Shift+ D-> T(デバッグ)
  • Alt+ Shift+ X-> T(実行)

テストを実行した後、次の手順を実行すると、カーソルがあった場所に戻ることができます。

Alt+Back

次の方法で、REPLのような動作がほぼ得られます。

Ctrl+ Shift+UpAlt+ Shift+ X- >TAlt+Back

ブレークポイントをすばやく設定することもできます。

Ctrl+ Shift+B


3

ファイル内のテストメソッド名のどこかを右クリックして、「実行」->「JUnitテスト」を選択します。私はいつもKeplerとJUnit4でそれを行っています。


2

他の人がEclipse3.4.1とJUnit4テストランナーを使用していたのと同じ問題がありました-単一のテストを実行できませんでした。しかし、私は問題を解決する提案をどこかで見つけました。私のテストクラスはまだjunit.framework.TestCaseを拡張していました。TestCaseの拡張を停止すると、すべてが正常に機能し、JUnit4テストランナーを使用して単一のJUnitテストを実行できました。もちろん、JUnit 4アノテーションでassertメソッドに静的インポートを使用する必要がありましたが、すでにそれを実行していました。TestCaseの継承を削除していませんでした。


1

複数のファイルに多数のテストがあり、特定のファイルのテストのみを実行する場合は、そのファイルを右クリックして、[実行]-> [junitテスト]を選択できます。さて、多くのテストを含むファイルに含まれる1つのテストのみを実行したい場合、アウトラインビューにファイルのすべてのテストメソッドが一覧表示されると思います(ここにEclipseはインストールされていません)。単一のテストメソッドを右クリックして、JUNitテストとして実行します。

それが役に立てば幸い。


1

1つのテストメソッドのみを実行します。
(パッケージエクスプローラーまたはプロジェクトエクスプローラー)で、クラスを展開します。すべてのメソッドが表示されます。実行するメソッドを1つ右クリックし、コンテキストメニューから[実行]-> [JUnit]を選択します。
ここに画像の説明を入力してください


0

私にとっては、以前のリリースでは機能していましたが、Eclipse 3.4.2でも機能しません(パッケージエクスプローラーから単一のメソッドを実行し、junitビューから単一のjunitテストを実行しようとしました)


パッケージエクスプローラーから単一のメソッド/テストを実行することは、Eclipse3.4.2では問題なく機能します。
Volker Stolz

0

3.4.2が以前のバージョンのように機能しなくなったという点に同意します。JUnitビューからテストのグループ内の単一のテストを右クリックして、そのテストだけを実行する前に。最新バージョンでは、常にそれらすべてを実行することを主張しています。確かに、ビューは最初にクリックしたテストを実行し、残りを「ルート化されていないテスト」と呼ばれるロールアップにダンプします。誰かがこれを理解した場合、私はそれを回避する方法を知りたいです。


0

ここでいくつかのコメントを読むと、作業中のコードに集中することなく、変更したコードのテストを実行することに興味があるようです。それを行うための日食プラグインがあります。infinitestを参照してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.