JUnitの撮影に問題があります。ソースコードでは、2つの場所にブレークポイントを設定しています。1)静的メンバーが初期化される行2)テストケースの1行目の最初の行。
デバッガは、静的フィールドの初期化行で停止します。しかし、テストケースでは停止しません。テストケースのどこにブレークポイントを設定しても、デバッガはそこで停止しません。追加したログメッセージがログに表示されるのを見ることができるので、テストケースが実行されることは確かです。
どんな助けも大歓迎です。
Eclipse GalileoとJUnit4ランチャーを使用しています。
これは、 JDK 6アップデート15のリリースノートに示されているように、JDK 6アップデート14 のバグの1つに関連している可能性があります。
これが実際に問題であることが判明した場合は、JDKの上位バージョンに移行する必要があります(ただし、保証はありません 修正プログラムは6u16、6u18、7b1に対してリリースされています )。最善の策は、-XX:+ UseParallelGCフラグを使用することです。最初のGCを遅らせるために、最小および最大ヒープサイズのサイズを大きくすると、一時的に軽減されます。
ところで、 Eclipseのこのバグレポート を使用して、他の人がどのように進んでいるかを追跡します。
修正は、すべてのブレークポイントの実行/スキップをクリックするだけの簡単なものです。私のために働いた。
状況に応じて、[実行]> [デバッグ構成]で[メインで停止]が選択されていることを確認します。
通常、これが私に起こるとき(まれですが)、実行されているコードがエディターのコードと異なることを意味します。 Eclipseでは、ビルドされたクラスとエディターのコードが同期していないことが時々発生します。それが起こると、私はあらゆる種類の奇妙なデバッガーの動作(空行のデバッグ、コードの行のスキップなど)を取得します。
Eclipseを再起動し、すべてのプロジェクトをクリーンアップし、すべてを再構築すると、通常は問題が解決します。また、Mavenプラグイン(以前のバージョン...しばらくの間それを使用していませんでした)もありました。
さもなければ、それはバグかもしれない、おそらくVineetが述べたもの、
お役に立てれば
Eclipseツールバーのすべてのブレークポイントを誤ってスキップした可能性があります。これを修正するには、Eclipse-> Run-> Skip All Breakpointsに進みます。
プロジェクト-> CleanはJRE 8で動作しているようです
すべてのブレークポイントを削除して、再度追加します。
デバッガーをリモートで使用するには、Java .classファイルをデバッグ情報とともにコンパイルする必要があります。 "-g:none"オプションがコンパイラに渡された場合、クラスファイルには必要な情報がないため、デバッガーはソースコードのブレークポイントをリモートのそのクラスと一致させることができません。一方、jars/classファイルがobfuscatedであった場合、デバッグ情報もありません。あなたの回答によると、おそらくこれはあなたの場合ではありませんが、この情報は同じ問題に直面している他の人にとって有用かもしれません。
必ずパッケージを上部で宣言してください。私のgroovyコードでは、これはブレークポイントで停止します:
package Pkg1
import Java.awt.event.ItemEvent;
isMule = false
class LineItem {
// Structure defining individual DB rows
public String ACCOUNT_CODE
public String ACCOUNT_DESC
...
これはブレークポイントで停止しません:
import Java.awt.event.ItemEvent;
isMule = false
class LineItem {
// Structure defining individual DB rows
public String ACCOUNT_CODE
public String ACCOUNT_DESC
...
JDK7の場合、実行->デバッグ構成、「デバッグ時にテスト実行後にJUnitを実行し続ける」をチェックします。
「実行>自動的にビルド」のチェックを外して、再チェックするのを忘れたときに、一度私に起こりました。
何も動作しない場合-
Vineet Reynoldsの回答に関する追加コメント。
-XX:+UseParallelGC
にEclipse.ini
を設定する必要があることがわかりました
次のように仮想マシン(vm)引数を設定します
-vmargs
-Dosgi.requiredJavaVersion=1.7
-Xms512m
-Xmx1024m
-XX:+UseParallelGC
-XX:PermSize=256M
-XX:MaxPermSize=512M
これで問題は解決しました。
また、他の行のブレークポイントが機能するかどうかを確認します。これは、デバッガーのバグである可能性があります。コードが次の行にあるブール値の割り当てにブレークポイントを設定しても機能しなかったEclipseデバッガーで問題が発生しました ここでこれを報告しました 、しかし、前または次の行に設定しました。
Right click->Debug Configuration
に移動し、作成されたデバッグインスタンスが多すぎるかどうかを確認します。設定から複数のデバッグインスタンスを削除し、新たにデバッグを開始すると、私の問題は解決しました。
別の考えられる問題は、デバッガーポートがファイアウォールによってブロックされる可能性があることです。たとえば、ラバエニポイントスタジオ(v 5.4.3)を使用していました。デフォルトのデバッガーポートは6666です。フローが実行されると、ブレークポイントで停止しません。ポートを別のポート(たとえば8099)に変更すると、正常に機能しました。
新しいワークスペースの作成は私にとってはうまくいきました。
Eclipseを使用している場合、
[パッケージエクスプローラー]の下のプロジェクトフォルダーを右クリックします。
ソースに移動->クリーンアップしてプロジェクトを選択します。
これにより混乱が解消され、ブレークポイントが機能するようになります。
私の場合、同じワークスペースに複数のプロジェクトがありました。デバッグしようとしていたJavaファイルは、同じパッケージを持つ複数のプロジェクトに存在していました。
私は他のプロジェクトを必要としなかったので、単純に無関係なプロジェクトを閉じました(または無関係なプロジェクトからファイルを削除しました)。