如何访问我的目录中的文本文件' src / test / resources'
在我的JUnit测试期间,我似乎无法获取它
移动/的build.gradle:
option
测试方法:
sourceSets {
test {
java {
srcDirs = [ 'src/test/java' ]
}
resources {
srcDirs = [ 'src/test/resources' ]
}
}
}
答案 0 :(得分:6)
使用/
。
基本上,你会做这样的事情:
File helloBleprintJson = new File(
getClass().getResource("/helloBlueprint.json").getPath());
上面的代码段取自here。
答案 1 :(得分:0)
I think 此链接会有所帮助。在你的情况下,为什么没有hard code字符串进行测试?为什么不使用String.xml而不是“file_four_lines.txt”。国际化要求每个资源文件的目录结构具有不同的语言,屏幕大小,方向,风味,夜/日视觉版本。因此,可以从R文件编译和访问资源。您试图通过使用.txt而不是.xml来绕过此约定并直接访问资源,它只是感觉不对。我不认为测试对你的问题不如常规。
答案 2 :(得分:0)
请原谅我两次发帖,我确实有答案from the official documentation"任意文件以原始形式保存。要使用原始InputStream打开这些资源,请使用资源ID(即R.raw.filename)调用Resources.openRawResource()。
但是,如果需要访问原始文件名和文件层次结构,可以考虑在assets /目录中保存一些资源(而不是res / raw /)。资产/中的文件没有给出资源ID,因此您只能使用AssetManager读取它们。" Json和txt are non-standard(unsupported) 因此您必须提供自己的实现/ parcer来读取此类型文件。谢谢你的这篇文章。我对资源有所了解,但多亏了你的刺激,我现在知道了更多。回顾一下The Android resource system keeps track of all non-code assets associated with an application. The Android SDK tools compile your application's resources into the application binary at build time. To use a resource, you must install it correctly in the source tree (inside your project's res/ directory) and build your application. As part of the build process, the SDK tools generate symbols for each resource, which you can use in your application code to access the resources,当然所引用的符号都在生成的R文件中