Testng: TestNG не может найти имена методов JUnit от Spock

Созданный на 1 апр. 2014  ·  13Комментарии  ·  Источник: cbeust/testng

Платформа Spock создает тесты JUnit. Их можно запустить через TestNG. Однако в классе org.testng.junit.JUnit4TestMethod есть такой код:

    private static Method getMethod(Description desc) {
        Class<?> c = desc.getTestClass();
        String method = desc.getMethodName();
        try {
            return c.getMethod(method);
        } catch (Throwable t) {
            Utils.log("JUnit4TestMethod", 2,
                    "Method '" + method + "' not found in class '" + c.getName() + "': " + t.getMessage());
            return null;
        }
    }

Поскольку переданное описание содержит текст теста Спока (что-то вроде: «Это мой тест Спока»), а Спок искажает имена тестов, простой вызов «c.getMethod(method)» завершается ошибкой. Если это исправлено, то TestNG также сможет запускать тесты Spock (JUnit).

Самый полезный комментарий

@rumatoest Вместо того, чтобы жаловаться, вы могли бы потратить свое свободное время на отладку / исправление этого. Меня тошнит от людей, которые думают, что полезные инструменты/фреймворки всегда выпекаются огромной компанией. TestNG — это, как утверждает @juherr , проект в свободное время.

Поскольку я уже хотел связаться со Споком (всегда стремился узнать что-то новое), я мог бы изучить это в следующий раз.

Все 13 Комментарий

Интересно, почему TestNG пытается получить Method за тест. Это вызовет проблемы с несколькими средами тестирования, реализующими JUnit runner.

+1

+1

+1

+1

+1

+1

Этому билету уже 2+ года. Ему до сих пор даже никто (НИКОГДА) не назначен! Какая полная шутка. Если кто-то даже рассматривает возможность использования TestNG, вы должны знать о крайне плохой поддержке, которую можно ожидать. Я только хочу, чтобы все наши тесты были в JUnit...

Мы поддерживаем testng в свободное время и исправили другие наиболее важные проблемы.

Но проект открытый, почему бы не попытаться исправить это самостоятельно? Мы будем рады помочь вам сделать запрос на включение.

В конце концов, как вы сказали, JUnit тоже является решением (и хорошим проектом).

@blackduck-joe Я просмотрел проблему и понятия не имею, как ее исправить.

Но ваша потребность более ясна в вашем SO thead , и, если я хорошо это понимаю, вы хотите запустить 2 вида тестов (spock/junit и testng).
Затем, если вы используете maven, вам следует взглянуть на https://groups.google.com/forum/#!topic/spockframework/ -iys4ARQrxk и/или запуск тестов TestNG и JUnit.

Концептуально необходимость добавления junit в мой текущий проект заставит меня использовать только junit в следующих проектах.

@rumatoest Вместо того, чтобы жаловаться, вы могли бы потратить свое свободное время на отладку / исправление этого. Меня тошнит от людей, которые думают, что полезные инструменты/фреймворки всегда выпекаются огромной компанией. TestNG — это, как утверждает @juherr , проект в свободное время.

Поскольку я уже хотел связаться со Споком (всегда стремился узнать что-то новое), я мог бы изучить это в следующий раз.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги