Платформа 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).
Интересно, почему 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 , проект в свободное время.
Поскольку я уже хотел связаться со Споком (всегда стремился узнать что-то новое), я мог бы изучить это в следующий раз.
Самый полезный комментарий
@rumatoest Вместо того, чтобы жаловаться, вы могли бы потратить свое свободное время на отладку / исправление этого. Меня тошнит от людей, которые думают, что полезные инструменты/фреймворки всегда выпекаются огромной компанией. TestNG — это, как утверждает @juherr , проект в свободное время.
Поскольку я уже хотел связаться со Споком (всегда стремился узнать что-то новое), я мог бы изучить это в следующий раз.