java config_error ai_generated true

org.junit.jupiter.api.extension.ParameterResolutionException: No ParameterResolver registered for parameter [int arg0] in constructor

ID: java/junit-parameterized-test-no-source

Also available as: JSON · Markdown · 中文
80%Fix Rate
84%Confidence
0Evidence
2025-03-05First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
8+ active

Root Cause

Parameterized test method or constructor has parameters but no @ValueSource or other source annotation.

generic

中文

参数化测试方法或构造函数有参数,但缺少 @ValueSource 或其他源注解。

Workarounds

  1. 95% success Add @ValueSource with values
    @ParameterizedTest
    @ValueSource(ints = {1, 2, 3})
    void testWithInts(int num) {
        assertTrue(num > 0);
    }
  2. 90% success Use @CsvSource for multiple parameters
    @ParameterizedTest
    @CsvSource({"1, foo", "2, bar"})
    void testWithCsv(int id, String name) {
        assertNotNull(name);
    }

Dead Ends

Common approaches that don't work:

  1. Adding @ParameterizedTest without source 80% fail

    JUnit doesn't know where to get parameters from.

  2. Using @Test instead of @ParameterizedTest 60% fail

    Test won't be parameterized and will fail with missing arguments.