java .lang.NoClassDefFoundError: org / junit / platform / commons / PreconditionViolationException при попытке запустить тест mockito junit5 с maven - PullRequest
2 голосов
/ 28 января 2020

Я использую JUNIT5 и Mockito. Я хочу написать ParameterizedTest. При попытке запустить тесты с использованием IntelliJ я получаю следующую ошибку:

java.lang.NoClassDefFoundError: org/junit/platform/commons/PreconditionViolationException
    at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:58)
Caused by: java.lang.ClassNotFoundException: org.junit.platform.commons.PreconditionViolationException
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 66 more

Следующий параметризованный тест, который я хочу выполнить

    @Test
    @ParameterizedTest
    @EnumSource(value = Money.Status.class, mode = EnumSource.Mode.EXCLUDE, names = {"deleted", "pending"})
    void testMoneyStates(Money.Status status) {
        System.out.println("Hurray " + status);
    }

Я запускаю его под IntelliJ 2019.3 У меня есть следующие зависимости в pom:

        <!-- Junit Mockito Dependencies -->
        <dependency>
          <groupId>org.mockito</groupId>
          <artifactId>mockito-junit-jupiter</artifactId>
          <version>RELEASE</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>org.junit.jupiter</groupId>
          <artifactId>junit-jupiter-params</artifactId>
          <version>5.6.0-M1</version>
          <scope>test</scope>
        </dependency>

Ответы [ 2 ]

2 голосов
/ 31 января 2020

Я получаю сообщение об ошибке, потому что мои зависимости JUnit и зависимости Junit-Jupiter-Params были на разных несовместимых версиях. Я пробовал несколько версий, и следующие версии работали для меня. mockito-junit-jupiter версии 3.2.4 использует версию Junit 5.4.2.

        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-junit-jupiter</artifactId>
            <version>3.2.4</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-params</artifactId>
            <version>5.4.2</version>
            <scope>test</scope>
        </dependency>
1 голос
/ 28 января 2020

Вам не хватает этой зависимости:

<dependency>
  <groupId>org.junit.jupiter</groupId>
  <artifactId>junit-jupiter-engine</artifactId>
  <version>${junit.version}</version>
  <scope>test</scope>
</dependency>
...