0

我正在使用 Spoon 在 Android 设备上运行自动化测试。我制作了一个 shell 脚本,它在某些时候通过勺子在所有连接的设备上运行测试。我对其进行了配置,以便将输出保存在 /Users/MyUsername/Documents/ 中,其中 run_ID 是 unix 时间戳。

我的问题是,有时(直到现在 4 次,在 6 个月内)它会删除在 Documents 目录中找到的所有文件和文件夹。我不知道为什么会这样,但它非常令人沮丧,因为我在那里保存了其他东西,不应该以任何方式删除。我不知道在哪里可以改变这种行为,所以我希望你们能给我一些建议。

这是我尝试删除所有内容(设法捕获它)时得到的错误输出:

2015-08-05 13:54:27 [SR.runTests] Executing instrumentation suite on 7 device(s).
Exception in thread "main" java.lang.RuntimeException: Unable to clean output directory: /Users/MyUsername/Documents
    at com.squareup.spoon.SpoonRunner.runTests(SpoonRunner.java:132)
    at com.squareup.spoon.SpoonRunner.run(SpoonRunner.java:113)
    at com.squareup.spoon.SpoonRunner.main(SpoonRunner.java:530)
Caused by: java.io.IOException: Unable to delete file: /Users/MyUsername/Documents/Framework/Automation/node_modules/scribe-js/node_modules/.bin/mkdirp
    at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:2279)
    at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:1653)
    at org.apache.commons.io.FileUtils.deleteDirectory(FileUtils.java:1535)
    at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:2270)
    at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:1653)
    at org.apache.commons.io.FileUtils.deleteDirectory(FileUtils.java:1535)
    at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:2270)
    at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:1653)
    at org.apache.commons.io.FileUtils.deleteDirectory(FileUtils.java:1535)
    at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:2270)
    at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:1653)
    at org.apache.commons.io.FileUtils.deleteDirectory(FileUtils.java:1535)
    at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:2270)
    at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:1653)
    at org.apache.commons.io.FileUtils.deleteDirectory(FileUtils.java:1535)
    at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:2270)
    at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:1653)
    at org.apache.commons.io.FileUtils.deleteDirectory(FileUtils.java:1535)
    at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:2270)
    at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:1653)
    at org.apache.commons.io.FileUtils.deleteDirectory(FileUtils.java:1535)
    at com.squareup.spoon.SpoonRunner.runTests(SpoonRunner.java:130)
    ... 2 more

启动spoon的shell脚本如下所示:

java -Xmx1024M -jar /Users/MyUsername/Documents/programmingStuff/spoon-runner-1.1.10-jar-with-dependencies.jar --apk /Users/MyUsername/git/hb_android_30/bin/beta.apk --test-apk /Users/MyUsername/Documents/programmingStuff/Regression-git/bin/PROD.apk --sdk /Users/MyUsername/Documents/programmingStuff/android-sdk-macosx --output /Users/MyUsername/Documents/$1 &&

其中 $1 是从另一个 shell 脚本传递的 run_ID。

到目前为止,我已经备份了 Documents 文件夹中的所有内容,但恢复它很烦人。

4

1 回答 1

0

我发现了问题所在。该脚本没有参数,因此 $1 为空,该命令删除了我在 Documents 文件夹中的所有内容。

于 2015-08-06T07:35:30.253 回答