не может видеть настоящее исключение в тестах Gradle - PullRequest
0 голосов
/ 12 марта 2019

У меня есть тестовый класс A, который расширяет некоторый базовый класс из внешней библиотеки

class A extends com.thirdparty.BaseClass {

    @Test public void test () {
        System.out.println("executing test")
    }
}

Между тем BaseClass всегда выдает исключение в своем конструкторе

class BaseClass {
    BaseClass() {
        throw new RuntimeException("Exception")
    }
} 

в том случае, когда я запускаю тест с gradle из командной строки, это выдает мне java.lang.NoClassDefFoundError , и я не имею ни малейшего понятия, что настоящим исключением является RuntimeException.

Что я хочу, так это увидеть реальное RuntimeException в любом месте.

Я пробовал

tasks.withType(Test) {
    testLogging {
        showStandartStreams = true
    }
}   

но это не дало результата.

Gradle версия 4.1

1 Ответ

0 голосов
/ 12 марта 2019

Если вы хотите что-то проверить, сделайте это внутри метода тестирования.Вы не объявляете свой тестовый класс следующим образом.

class A extends com.thirdparty.BaseClass {

Когда генерируется исключение, среда тестирования не распознает его как результат теста, а как сбой, возникший при настройке, чтоВот почему он создает свое собственное исключение, чтобы отразить это.Если вы хотите проверить, что ваш конструктор выдает исключение, сделайте это следующим образом.

class A {
    @Test(expected = RuntimeException::class)
    public void testConstructorThrowsException() {
        BaseClass()
    }
}
...