环境:
我有一个支持多个设置/可选依赖项的库项目。
该库始终需要Spring Boot + grpc-java。 但是,lib的用户可以决定要使用netty还是netty着色的。 最后,如果存在Spring-Security和/或Spring-Cloud,则lib将添加其他功能。
我有一组使用默认设置(netty + Spring-Security)运行的测试。 如何测试我是否还可以将库中的所有功能与其他设置组合一起使用,而无需多次复制测试?
(在上一次更新期间,我在一个库类中使用了来自错误库的类,因此如果缺少可选依赖项,则库将无法正常工作。现在,我希望将来避免出现类似问题)< / p>
可能的解决方案
并非所有测试都适用于所有设置。 (如果不存在安全库,则安全测试显然会失败)。 不幸的是,测试项目的数量很容易爆炸。目前,需要约8个项目来测试所有可能的组合。如果我添加另一个可选的依赖项(我认为是这样做的),它将增加到16。 如果没有更简单的方法,我可能会使用这种方法。
这需要额外的编码和一些不好的类加载器魔术,还可能需要分叉的测试执行模式,该模式不能并行执行测试(因为它们可能必须绑定端口)
TLDR:是否有一种简便的方法来使用gradle运行具有不同依赖关系集的JUnit 5测试?