我想为我的新项目创建结构,我打算用Gradle构建它。我已经知道,如果我将源代码和测试放置在一个项目中,像MoreUnit这样的插件可以轻松处理它,并在我想要的地方为我的类创建测试。1个Eclipse项目,2个带Gradle的工件
但是,当我的项目由多个子项目组成时,会产生一些尴尬的依赖性问题,这取决于彼此 - 准确地说,当我想在项目A的测试中使用一些通用代码,然后在项目BI的测试中重用它时,必须不喜欢
project(':B') {
// ...
dependencies {
// ...
if (noEclipseTask) {
testCompile project(':A').sourceSets.test.output
}
}
}
一些解决方法,有时也有一些评价的问题,所以另一个黑客已经被引入:
project(':B') {
evaluationDependsOn(':A')
}
拆分此为2个独立的项目摆脱了这个问题,但随后MoreUnit不再是能够跟踪应该创建新测试文件的位置,并标记哪些方法已经过测试。我还没有在MoreUnit配置中找到任何可以解决这个问题的方法,所以我试图从Gradle方面解决这个问题。
我们可以安排一些东西,让我可以有几个子项目,源代码和测试以类似方式排列(project/src/java
,project/test/java
),但测试和源代码将创建单独的工件?如果我解决了错误的问题,那么我应该如何解决这个问题?
感谢您的回复!我有一些疑虑,我想解决。通常,你的意思是我想在测试项目中分享的测试代码?您的解决方案是否应用于1-project-with-src-and-test或2-separate-project方法?应该将第一段代码放在根项目级还是在commons项目中? – 2015-02-08 13:59:52
以上所有代码都可以应用于生成common-v1.0.jar和common-testenv-v1.0.jar的公共项目。两者都可以用于他们的目的... – 2015-02-09 08:45:29