我有以下任务将文件从我的android项目资源文件复制到单元测试中ClassLoader实例可以访问的其他路径。
task copyResDirectoryToClasses(type: Copy){
println 'COPYINGCOPYINGCOPYING!!!!!!!!!!!!!!!!!!!!'
println "$projectDir/src/test/java/com/textmeinc/topmeup/resources/"
println "$buildDir/intermediates/classes/test/staging/debug/"
from "$projectDir/src/test/java/com/textmeinc/topmeup/resources/"
into "$buildDir/intermediates/classes/test/staging/debug/"
}
assembleDebug.dependsOn(copyResDirectoryToClasses)
我看到任务在我的gradle控制台中运行。
Parallel execution with configuration on demand is an incubating feature.
COPYINGCOPYINGCOPYING!!!!!!!!!!!!!!!!!!!!
/Users/tylerpfaff/Documents/Development/topmeup-android/app/src/test/java/com/textmeinc/topmeup/resources/
/Users/tylerpfaff/Documents/Development/topmeup-android/app/build/intermediates/classes/test/staging/debug/
但是,没有文件传输。如果我在终端中手动移动它们,我的mock.json文件运行正常。为什么副本不起作用?
这是我用来手动复制文件的命令。
cp /Users/tylerpfaff/Documents/Development/topmeup-android/app/src/test/java/com/textmeinc/topmeup/resources/mock.json /Users/tylerpfaff/Documents/Development/topmeup-android/app/build/intermediates/classes/test/staging/debug/
答案 0 :(得分:4)
我认为插件中存在一个错误。我自己就碰到了这个。让任务以"依赖"失败。但是,如果我在Android Studio中打开Gradle选项卡并从那里手动运行任务,则会复制文件。命令行gradlew :subproject:copytask
也是如此。我将尝试在一个独立的项目中复制它,如果可以的话,我会为它提交一个错误报告(并在此处添加链接)。与此同时,手动运行该gradle任务是我唯一的解决方案。
答案 1 :(得分:0)
this documentation page顶部的示例使用相对于projectDir
尝试使用以下命令替换from和into路径:
from 'app/src/test/java/com/textmeinc/topmeup/resources'
into 'build/intermediates/classes/test/staging/debug'