我希望运行一个Gradle构建,该构建编译测试(src/test/java目录中的JUnit测试),但不运行它们。./gradlew build编译并运行测试,而./gradlew build -x test不编译测试。我还尝试了./gradlew build -x testClasses,但在它构建和运行测试时没有产生预期的结果。有没有办法做到这一点?
src/test/java
./gradlew build
./gradlew build -x test
./gradlew build -x testClasses
uxhixvfz1#
TL;DR:gradle testClasses编译测试源代码。排除test-任务后,将不需要编译测试源代码的任务。Gradle会看到这一点,因此不会执行不需要的任务。这是任务依赖关系图,当您排除某些任务时,其他任务不需要的所有任务都将被删除。x1c 0d1xsource Gradle用户指南因此,查看任务依赖关系图testClasses是编译测试源代码和处理资源的任务。你可以把这个任务加到你的命令里,
gradle testClasses
test
testClasses
gradle build testClasses -x test
或者更好的方法是将assemble-task(构建jar)与testClasses-task一起使用,这样就不必排除测试。
assemble
gradle assemble testClasses
bgibtngc2#
如果您正在使用Gradle构建Android项目:
./gradlew \ compile<Variant1>DebugUnitTestSources \ compile<Variant1>ReleaseUnitTestSources \ compile<Variant2>DebugUnitTestSources \ compile<Variant2>ReleaseUnitTestSources \ compileDebugUnitTestSources \ compileReleaseUnitTestSources \ bundleLibResDebug \ bundleLibResRelease \ bundleLibRuntimeToJarDebug \ bundleLibRuntimeToJarRelease
如果使用变量,请用变量的名称替换<Variant1>和<Variant2>。最后4行是您可能使用的库。
<Variant1>
<Variant2>
./gradlew \ assembleAndroidTest
2条答案
按热度按时间uxhixvfz1#
TL;DR:
gradle testClasses
编译测试源代码。排除
test
-任务后,将不需要编译测试源代码的任务。Gradle会看到这一点,因此不会执行不需要的任务。这是任务依赖关系图,当您排除某些任务时,其他任务不需要的所有任务都将被删除。x1c 0d1xsource Gradle用户指南
因此,查看任务依赖关系图
testClasses
是编译测试源代码和处理资源的任务。你可以把这个任务加到你的命令里,
或者更好的方法是将
assemble
-task(构建jar)与testClasses
-task一起使用,这样就不必排除测试。bgibtngc2#
如果您正在使用Gradle构建Android项目:
如果使用变量,请用变量的名称替换
<Variant1>
和<Variant2>
。最后4行是您可能使用的库。