Feature: allow custom tags on JUnit 4 ignored tests (onTestIgnore / fireTestIgnored)
@daniel-mohedano is already working on this.
Since May 22, 2026.
Assessment
This issue has not been assessed yet.
Description
Library Name
dd-java-agent
Library Version(s)
1.60.3
Describe the feature you'd like
| Section | Content |
|---|---|
| Problem | Need is_ignored custom tags (and optional skip reason) on agent-reported ignored tests in CI with javaagent + Gradle. |
| Current behavior | onTestIgnore does start → skip → end synchronously; app RunListener.testIgnored runs outside that window, so Span.current() / manual DDTest either don’t tag the agent test or create a second session (suite conflicts). |
| Desired behavior | Hook to set tags on the same test span Datadog creates for @Ignore / fireTestIgnored, e.g. public API, TestEventsHandler callback, or documented extension point. |
| Environment | JUnit 4, dd-java-agent 1.60.3, Kotlin kotlin.test.Ignore + JVM Robolectric, Buildkite. |
Is your feature request related to a problem?
I try to set custom tag on @Ignore test with Datadog Test Optimization with Java Tests on an android project, and notice that there is no active span, as Span.current() is not working for @Ignore test.
Below is the sample code:
class TestIgnoredListener : RunListener() {
override fun testIgnored(description: Description) {
Span.current().setAttribute("is_ignored", true)
}
}
class CustomRobolectricTestRunner(testClass: Class<*>) : RobolectricTestRunner(testClass) {
...
override fun run(notifier: RunNotifier) {
notifier.addListener(TestIgnoredListener())
super.run(notifier)
}
...
}
@RunWith(CustomRobolectricTestRunner::class)
class CreateThreadPickMediaTest {
...
@Test
@Ignore(
"java.lang.SecurityException: " +
"Permission Denial: opening provider com.android.providers.media.MediaDocumentsProvider" +
" requires that you obtain access using ACTION_OPEN_DOCUMENT or related APIs"
)
fun givenPickMediaIntent_whenPickMedia_thenImagePreviewContentIsShown() {
...
}
...
}
Describe alternatives you've considered
Tried Manual Testing API (CIVisibility + DDTest#setTag) only without javaagent, too much works to write all the RunListener on my own (similar to dd-java-agent JUnit4TracingListener).
Additional context
No response
- Dominant language
- Java
- Stars
- 737
- Forks
- 361
- Avg merge
- 3d 20h
- Merged PRs (30d)
- 173
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from DataDog/dd-trace-java
-
type: feature request
Difficulty 1/5 1-3 hours Newbie friendliness 70/100
DataDog/dd-trace-java#10245 · 1 comment ·
-
Difficulty 4/5 3-5 days Newbie friendliness 62/100
DataDog/dd-trace-java#12608 ·
-
type: bug report
Difficulty 4/5 3-5 days Newbie friendliness 35/100
DataDog/dd-trace-java#12597 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
DataDog/dd-trace-java#12540 · 4 comments · 1 assignee ·
-
Difficulty 3/5 1-2 days Newbie friendliness 25/100
DataDog/dd-trace-java#12480 ·
All issues in DataDog/dd-trace-java
Similar issues
-
area/plugin
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
kestra-io/plugin-kestra#190 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
google-ai-edge/LiteRT-LM#3739 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
integra-team-red/meet-map#249 ·
-
[Studio][Bug] Cancelled create-user dialog keeps the password and admin switch for the next attempt Open
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
apache/rocketmq-dashboard#5064 ·