Getting initializationError while running Tests with AppMap with Gradle
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 35/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- java
調査の方向性
PriceEntityGrpcServiceTest から始め、gradlew.bat appmap test を使って失敗を再現します。テストクラスの JUnit および Mockito アノテーションを @Test メソッドと併せて確認し、その後、テストスイートが initializationError または「No runnable methods」の失敗なしに実行されることを確認します。
索引モデルが issue の本文から書いたものです。
説明
appmap.yml
# 'name' should generally be the same as the code repo name.
name: PricingService
packages:
- path: com.nuorder.service.pricing
# exclude: [ com.mycorp.myproject.MyClass#MyMethod ]
- path: org.springframework.web
shallow: true
exclude:
- org.springframework.web.util
- path: java.util.logging
methods:
- class: Logger
name: log
Command
gradlew.bat appmap test
Error Log
org.mockito.exceptions.base.MockitoException:
No tests found in PriceEntityGrpcServiceTest
Is the method annotated with @Test?
Is the method public?
at app//org.mockito.internal.runners.RunnerFactory.create(RunnerFactory.java:82)
at app//org.mockito.internal.runners.RunnerFactory.createStrict(RunnerFactory.java:40)
at app//org.mockito.junit.MockitoJUnitRunner.<init>(MockitoJUnitRunner.java:154)
at [email protected]/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at [email protected]/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at [email protected]/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at [email protected]/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at app//org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104)
at app//org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
at app//org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70)
at app//org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:37)
at app//org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70)
at app//org.junit.internal.requests.ClassRequest.createRunner(ClassRequest.java:28)
at app//org.junit.internal.requests.MemoizingRequest.getRunner(MemoizingRequest.java:19)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:78)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:38)
at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62)
at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51)
at [email protected]/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at [email protected]/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at [email protected]/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at [email protected]/java.lang.reflect.Method.invoke(Method.java:566)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
at com.sun.proxy.$Proxy5.processTestClass(Unknown Source)
at org.gradle.api.internal.tasks.testing.worker.TestWorker$2.run(TestWorker.java:176)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:133)
at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71)
at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at org.mockito.internal.runners.util.RunnerProvider.newInstance(RunnerProvider.java:29)
at org.mockito.internal.runners.RunnerFactory.create(RunnerFactory.java:75)
... 36 more
Caused by: org.junit.runners.model.InvalidTestClassError: Invalid test class 'com.nuorder.service.pricing.grpc.PriceEntityGrpcServiceTest':
1. No runnable methods
at org.junit.runners.ParentRunner.validate(ParentRunner.java:525)
at org.junit.runners.ParentRunner.<init>(ParentRunner.java:92)
at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:74)
at org.mockito.internal.runners.DefaultInternalRunner$1.<init>(DefaultInternalRunner.java:31)
at org.mockito.internal.runners.DefaultInternalRunner.<init>(DefaultInternalRunner.java:30)
... 42 more
Test class file (truncated)
@ExtendWith(MockitoExtension.class)
@RunWith(MockitoJUnitRunner.class)
public class PriceEntityGrpcServiceTest {
....
....
@Test
public void testCreate() {
PriceEntity priceEntity = testEntity();
CreatePricingEntityRequest request =
CreatePricingEntityRequest.newBuilder()
.setEntity(priceEntity)
.setMerchantId("merchant1")
.build();
StreamObserver streamObserver = Mockito.mock(StreamObserver.class);
service.createPricingEntity(request, streamObserver);
ArgumentCaptor<PriceEntity> captor = ArgumentCaptor.forClass(PriceEntity.class);
verify(bigtableRepository).create(captor.capture());
PriceEntity auditPriceEntity = captor.getValue();
TestUtils.verifyAuditedPriceEntity(priceEntity, auditPriceEntity, getUser());
verify(pricingSearchRepository).save(any(TaggedPriceEntity.class));
ArgumentCaptor<CreatePricingEntityResponse> responseCaptor =
ArgumentCaptor.forClass(CreatePricingEntityResponse.class);
verify(streamObserver).onNext(responseCaptor.capture());
TestUtils.verifyAuditedPriceEntity(
priceEntity, responseCaptor.getValue().getEntity(), getUser());
verify(streamObserver).onCompleted();
verifyNoMoreInteractions(streamObserver);
}
- 主要言語
- Java
- スター
- 88
- フォーク
- 17
- 平均マージ
- 2日 2時間
- マージ済み PR(30日)
- 1
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
getappmap/appmap-java のほかの issue
-
難易度 4/5 3〜5日 初心者へのやさしさ 28/100
getappmap/appmap-java#333 ·
-
appmap.yml packages path matching zero classes yields a healthy-looking recording with no warningオープン
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
getappmap/appmap-java#332 · コメント 1 件 ·
-
Git metadata dropped in a git worktree (.git file with gitdir: pointer not followed)対応中かも @dividedmind が 2 日前に担当しました。 オープン
getappmap/appmap-java#331 · コメント 1 件 · 担当者 1 名 ·
-
Labeled methods should always be recorded, even if they match trivial-method filters対応中かも @kgilpin が 192 日前に担当しました。 オープン
getappmap/appmap-java#323 · リアクション 1 件 · 担当者 2 名 ·
-
Warning with Java 25オープン
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
getappmap/appmap-java#322 ·
getappmap/appmap-java の issue をすべて見る
似ている issue
-
`GET /v1/event/token/{uuid}` can report a BOM upload as done before policy evaluation and metrics have finished対応中かも @Zargath が今日担当しました。 オープンdefect in triage
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
DependencyTrack/dependency-track#7646 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
floci-io/floci#5425 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
objectionary/eo-graphs#80 ·
-
WebMvcStreamableServerTransportProvider: idle-session eviction stops permanently after a NullPointerException when a session is deleted mid-sweep対応中かも @lejuho が今日担当しました。 オープンstatus: waiting-for-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
spring-projects/spring-ai#7133 ·
メンテナーはふだん 6 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
objectionary/jucs#141 ·
メンテナーはふだん 1 日以内に返信