Skip to content

JUnit and request recorders both record the same integration test; no way to pick one #333

Open

Description

@devin-ai-integration

Summary

A single Spring Boot integration test that issues an HTTP request through a real port produces two recordings of the same behavior: one from the JUnit recorder, one from the request recorder. Both recorders are on by default, neither knows about the other, and there is no documented setting to disable one.

Agent 1.30.1, spring-petclinic @ b26f235.

Repro

mvn -Dtest=PetClinicIntegrationTests#testOwnerDetails test
ls tmp/appmap/junit tmp/appmap/request_recording

Observed

tmp/appmap/junit/org_..._PetClinicIntegrationTests_testOwnerDetails.appmap.json
tmp/appmap/request_recording/1789755390_129__owners_1.appmap.json

The JUnit recording contains the test method and everything under it; the request one contains the request, controller and SQL. They overlap almost entirely. The request recording's filename embeds a timestamp and a port-dependent counter, so it differs on every run and cannot serve as a stable baseline identity (the gold-traces engine's discover returns both and leaves the choice open).

Expected

A setting to select which recorder runs when both would fire (e.g. suppress request recordings that occur inside an active JUnit recording), or at least document the rule: curate the JUnit recording, use a request recording only when no test drives the endpoint.

Written by Devin

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions