作者:博文_Andrew-属_394 | 来源:互联网 | 2023-05-18 21:45
对于我的Android应用程序,我正在编写需要读取一些文件的单元测试.由于这些是仅测试文件,我不希望它们出现在我的res
文件夹中,因为我不希望它们最终出现在我的最终.apk
文件中.
我想做一些类似于这个问题但使用新添加的(在Gradle 1.1中)单元测试支持(而不是仪器测试).
我的项目结构如下:
/app
/src
/main
/java/my.module/myClass.java
/res/production_resources_go_here
/test
/java/my.module/myClassTest.java
/resources/testFile.txt
我的myClassTest
测试应该是什么样才能成功阅读testFile.txt
?
1> Marcin Koziń..:
在提出这个问题的时候,这根本就没有用.幸运的是,这已经解决了.
您必须将文本文件放在app/src/test/resources
OP尝试执行的文件夹下.此外,它必须与您的测试类位于同一个包中.因此,如果您在文件夹ReadFileTest.java
中包,那么您的测试文件应该在.com.example.test
app/src/test/java
app/src/test/resources/com/example/test
然后你可以像这样找到你的文本文件:
getClass().getResourceAsStream("testFile.txt")
这将打开InputStream
文本文件.如果您不确定如何使用它,可以使用以下几种方法:将InputStream读取/转换为String
如果有人对“ InputStream”结果_null_有疑问,请添加斜杠,例如“ getClass()。getResourceAsStream(“ / testFile.txt”)”。
2> Deepanshu..:
将其添加到build.gradle:
android {
sourceSets {
test {
resources.srcDirs += ['src/test/resources']
}
androidTest {
resources.srcDirs += ['src/androidTest/resources']
}
}
}
要获得单元测试可访问的资源,请将文件添加到: src/test/resources
.对于仪器测试,请将您的文件添加到:src/androidTest/resources
.