我在我的java应用程序中使用Gradle build。我的项目有弹性搜索综合测试。以下是我的gradle.build
jar {
baseName = 'myproject'
version = 'V.4.0.0'
manifest {
attributes 'Main-Class': 'com.myapp.Application'
}
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
}
test {
systemProperties = System.properties
systemProperty 'tests.security.manager', 'false'
}
当我给gradle build
时,它执行了测试并创建了myproject-V.4.0.0.jar
。但是当我运行
java -cp myproject-V.4.0.0.jar;junit-4.11.jar junit.textui.TestRunner com.myapp.test.testclassname
我发现com.myapplication.test.testclassname没有找到类异常。 我解压缩了myproject-V.4.0.0.jar,找不到测试类。
我的问题是,我如何在我的应用程序jar中包含测试类?
答案 0 :(得分:1)
这是gradle java项目的故意行为。 jar是你的生产工件,所以通常你想在构建期间测试它,但你不想在生产中运行你的测试,所以我不建议这样做。话虽如此,有一种方法可以在gradle中完成,例如:
task myJar(type:Jar) {
from {sourceSets.main.output + sourceSets.test.output}
}