Я пишу библиотеку java foo
, которая имеет зависимость от bar:1.1+
. Но библиотека bar
сильно изменилась с течением времени, и я хочу, чтобы моя библиотека была совместима с каждой версией bar
(1.1
... 1.10
).Как запустить модульные тесты против нескольких версий зависимостей
Поэтому я хотел бы (во время CI) запускать каждый из моих модульных тестов с помощью classpath, включая bar:1.X
, с каждой версией bar
.
Я использую gradle и junit/spock, но я открыт для решений с вариациями.
Справа Я могу дублировать заданиями по градации, но это довольно громоздко, и результаты тестов могут быть сложными для агрегации. В идеале я бы определить прямо рядом с моим испытанием, какие версии бара он должен работать с, например .:
@RunWith("com.acme:bar:1.1..1.10")
public class MyTest { ... }
Но я не нахожу инструмент/бегуна для этого.
Ну, с Maven можно просто определить несколько профилей и запустите тесты с этими профилями (см. http://stackoverflow.com/questions/166895/different-dependencies-for-different-build-profiles-in-maven). Я думаю, что у градле есть подобные возможности. –
Просто хотел отметить, что тесты, которые вы хотите запустить здесь, - это тесты интеграции, а не модульные тесты. Для модульных тестов обычно было бы издеваться над зависимостью от библиотеки бара. – unigeek
@unigeek не говорит, что вы ошибаетесь, но это может зависеть от того, какая библиотека 'bar', допустим, это guava, ни один здравомыслящий человек не будет издеваться над всеми ее применениями ^^ – Gluck