Gradle:编译测试但不运行它们

5jdjgkvh  于 2023-01-09  发布在  其他
关注(0)|答案(2)|浏览(219)

我希望运行一个Gradle构建,该构建编译测试(src/test/java目录中的JUnit测试),但不运行它们。
./gradlew build编译并运行测试,而./gradlew build -x test不编译测试。我还尝试了./gradlew build -x testClasses,但在它构建和运行测试时没有产生预期的结果。
有没有办法做到这一点?

uxhixvfz

uxhixvfz1#

TL;DR:gradle testClasses编译测试源代码。
排除test-任务后,将不需要编译测试源代码的任务。Gradle会看到这一点,因此不会执行不需要的任务。
这是任务依赖关系图,当您排除某些任务时,其他任务不需要的所有任务都将被删除。x1c 0d1xsource Gradle用户指南
因此,查看任务依赖关系图testClasses是编译测试源代码和处理资源的任务。
你可以把这个任务加到你的命令里,

gradle build testClasses -x test

或者更好的方法是将assemble-task(构建jar)与testClasses-task一起使用,这样就不必排除测试。

gradle assemble testClasses
bgibtngc

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行是您可能使用的库。

./gradlew \
  assembleAndroidTest

相关问题