Gradle Copy任务不会复制文件

时间:2016-03-30 01:31:12

标签: android unit-testing gradle mockito powermock

我有以下任务将文件从我的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/

2 个答案:

答案 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'