我有一个包含一系列测试的gradle项目,可以使用命令启动: gradlew clean:mymodule:test
我需要构建一个jar,可以以相同的方式执行并启动测试。我在这里找到了创建一个测试二进制文件的指令Creating a Jar of test binaries - Gradle。
task packageTests(type: Jar) {
classifier = 'tests'
from sourceSets.test.output
}
但是生成的jar只包含测试类和资源,没有依赖库或主应用程序源代码。 如何创建可执行的测试jar?
答案 0 :(得分:2)
如果我是你,我不会使用classifier='tests'
,因为它通常是为包含没有依赖项的测试类的jar保留的。可能uber-tests
或fat-tests
更好,因为uber-jar和fat-jar是这种罐子的通用名称。你可以做点什么
task uberTestJar(type: Jar) {
dependsOn testClasses
classifier = 'uber-tests'
sourceSets.main.output.each {
from it
}
sourceSets.test.output.each {
from it
}
configurations.testRuntime.each { File f ->
if (f.name.endsWith('.jar')) {
from zipTree(f)
} else {
from f
}
}
}