microsoft / microsoft/vscode-java-test
Errors in JUnit5TestSearcher
オープン
まだ誰も着手していません。
ai-triaged
bug
junit
needs-reproduction
test-discovery
- 主要言語
- TypeScript
- スター
- 340
- フォーク
- 173
- 平均マージ
- 1日 19時間
- マージ済み PR(30日)
- 18
説明
java.lang.NullPointerException: Cannot read the array length because "this.fields" is null
at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.getField(BinaryTypeBinding.java:1426)
at org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding.buildTargetAnnotation(AnnotationBinding.java:179)
at org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding.addStandardAnnotations(AnnotationBinding.java:83)
at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.retrieveAnnotations(BinaryTypeBinding.java:1855)
at org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.getAnnotations(ReferenceBinding.java:1067)
at org.eclipse.jdt.core.dom.TypeBinding.getAnnotations(TypeBinding.java:122)
at com.microsoft.java.test.plugin.searcher.JUnit5TestSearcher.matchesNameInAnnotationHierarchy(JUnit5TestSearcher.java:110)
at com.microsoft.java.test.plugin.searcher.JUnit5TestSearcher.findAnnotation(JUnit5TestSearcher.java:85)
at com.microsoft.java.test.plugin.searcher.JUnit5TestSearcher.isTestMethod(JUnit5TestSearcher.java:69)
at com.microsoft.java.test.plugin.util.TestSearchUtils.findTestItemsInTypeBinding(TestSearchUtils.java:382)
at com.microsoft.java.test.plugin.util.TestSearchUtils.findTestTypesAndMethods(TestSearchUtils.java:360)
at com.microsoft.java.test.plugin.handler.TestDelegateCommandHandler.executeCommand(TestDelegateCommandHandler.java:60)
at org.eclipse.jdt.ls.core.internal.handlers.WorkspaceExecuteCommandHandler$1.run(WorkspaceExecuteCommandHandler.java:215)
java.lang.NullPointerException: Cannot assign field "mayTolerateMissingType" because "this.env" is null
at org.eclipse.jdt.internal.compiler.lookup.UnresolvedAnnotationBinding.resolve(UnresolvedAnnotationBinding.java:34)
at org.eclipse.jdt.internal.compiler.lookup.UnresolvedAnnotationBinding.getAnnotationType(UnresolvedAnnotationBinding.java:41)
at org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding.addStandardAnnotations(AnnotationBinding.java:47)
at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.retrieveAnnotations(BinaryTypeBinding.java:1855)
at org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.getAnnotations(ReferenceBinding.java:1067)
at org.eclipse.jdt.core.dom.TypeBinding.getAnnotations(TypeBinding.java:122)
at com.microsoft.java.test.plugin.searcher.JUnit5TestSearcher.matchesNameInAnnotationHierarchy(JUnit5TestSearcher.java:110)
at com.microsoft.java.test.plugin.searcher.JUnit5TestSearcher.findAnnotation(JUnit5TestSearcher.java:85)
at com.microsoft.java.test.plugin.searcher.JUnit5TestSearcher.isTestMethod(JUnit5TestSearcher.java:69)
at com.microsoft.java.test.plugin.util.TestSearchUtils.findTestItemsInTypeBinding(TestSearchUtils.java:382)
at com.microsoft.java.test.plugin.util.TestSearchUtils.findTestTypesAndMethods(TestSearchUtils.java:360)
at com.microsoft.java.test.plugin.handler.TestDelegateCommandHandler.executeCommand(TestDelegateCommandHandler.java:60)
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
まず JUnit5TestSearcher.java の 69、85、110 行目から始め、続いて TestSearchUtils.findTestItemsInTypeBinding を通してスタックトレースを追跡します。影響を受けたプロジェクトでテスト検出を再現し、どのアノテーション階層パスが報告された NullPointerExceptions を引き起こすのかを特定します。JUnit 5 のテスト検索がこれらのエラーなしで完了すれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- java
- 領域
- testing-qa
- issue の種類
- バグ
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 30/100