我想为我的新项目创建结构,并打算用 Gradle 构建它。我已经知道,如果我将源代码和测试放在一个项目中,MoreUnit 之类的插件将轻松处理它,并在我想要的地方为我的类创建测试。
但是,当我的项目由多个相互依赖的子项目组成时,它会产生一些尴尬的依赖问题 - 确切地说,当我想在项目 A 的测试中使用一些通用代码然后在项目 BI 的测试中重用它时,必须做一些变通办法,比如
project(':B') {
// ...
dependencies {
// ...
if (noEclipseTask) {
testCompile project(':A').sourceSets.test.output
}
}
}
有时还会出现一些评估问题,因此必须引入另一个 hack:
project(':B') {
evaluationDependsOn(':A')
}
将其拆分为 2 个单独的项目消除了该问题,但 MoreUnit 不再能够跟踪它应该在哪里创建新的测试文件,并标记哪些方法已经过测试。我在 MoreUnit 配置中没有找到任何可以让我解决这个问题的东西,所以我试图从 Gradle 方面解决这个问题。
我们可以安排一些事情,以便我可以有几个子项目、源和测试以类似 maven 的方式 ( project/src/java
, project/test/java
) 排列,但是测试和源将创建单独的工件?如果我正在解决错误的问题,那么我应该如何解决正确的问题?