2016-05-27 6 views
0

Я получаю NoSuchMethodError на AssertJ, когда пытаюсь выполнить единичный тест. Шаг make работает отлично, и при навигации к реализации assertThat() он работает нормально.java.lang.NoSuchMethodError при запуске теста в IntelliJ IDEA

Зависимости модулей показывают, что я использую org.assertj: assertj-code: 1.2.0, как я определил как зависимость от компиляции в моей build.gradle (да, компиляция и не проверка). Единичный тест находится внутри основного класса пути моего модуля, поскольку он является интеграционным тестом, поэтому это намеренно. Однопетлевые файл содержит:

<orderEntry type="library" name="Gradle: org.assertj:assertj-core:1.2.0" level="project" />

Мой пример теста:

import org.assertj.core.api.Assertions; 
import org.junit.Test; 

public class X { 
    @Test 
    public void x(){ 
     Assertions.assertThat(1).isEqualTo(1); 
    } 
} 

и когда я исполню его, я получаю:

java.lang.NoSuchMethodError: org.assertj.core.api.Assertions.assertThat(I)Lorg/assertj/core/api/IntegerAssert;

Когда я смотрю в конфигурациях перспективе, путь к классам установлен на правильный модуль (модуль, содержащий AssertJ).

Я пробовал недействительные кеши, но это не помогло.

В настоящее время я не в курсе (без каламбур). Кто-нибудь, кто видел это раньше? Или знаете, как продолжить поиск неисправностей?

ответ

2

Найдено.

У меня был еще один модуль, импортирующий более новую версию AssertJ. И как-то (кажется, как ошибка в IntelliJ) моя среда исполнения использовала этот вариант вместо этого.

Я буду отслеживать мою сообщенную ошибку: https://youtrack.jetbrains.com/issue/IDEA-156718 и опубликовать обновления.