如何针对多个版本的依赖项运行单元测试

时间:2015-08-11 18:11:20

标签: java unit-testing junit gradle spock

我正在编写一个依赖foo的java库bar:1.1+。 但是库bar已经发生了很大的变化,我希望确保我的库与bar的每个版本都兼容(1.1 ... 1.10 )。

所以我希望(在CI期间)使用包含bar:1.X的类路径运行每个单元测试,每个版本都可用bar

我正在使用gradle和junit / spock,但我愿意接受各种变化的解决方案。

对,我可以通过gradle测试任务复制,但这非常麻烦,测试结果可能难以聚合。 理想情况下,我会在我的测试旁边定义它应该运行哪些版本的条,例如:

@RunWith("com.acme:bar:1.1..1.10")
public class MyTest { ... }

但我找不到工具/跑步者。

1 个答案:

答案 0 :(得分:0)

这与Maven有关,但不确定它如何适合CI,但可能会帮助您入门。

一种选择可能是使用Maven Archetype <-更多信息

使用mvn archetype:generate,您可以使用动态需要的版本生成项目

mvn archetype:generate                                  
  -DarchetypeGroupId=<archetype-groupId>                
  -DarchetypeArtifactId=<archetype-artifactId>          
  -DarchetypeVersion=<archetype-version>                
  -DgroupId=<my.groupid>                                
  -DartifactId=<my-artifactId>
  -Dversion=<custom-version>