我正在尝试与新的Gradle Android构建系统一起运行我的Robolectric测试,但我一直在访问我的主项目的资源.
我将构建拆分为两个单独的项目,以避免java和androidgradle插件之间发生冲突,因此目录结构大致如下所示:
.
??? build.gradle
??? settings.gradle
??? mainproject
? ??? build
? ? ??? classes
? ? ? ??? debug
? ??? build.gradle
? ??? src
? ??? main
? ??? AndroidManifest.xml
? ??? ...
??? test
??? build.gradle
??? src
??? test
??? java
??? ...
??? test
??? MainActivityTest.java
??? Runner.java
??? ServerTestCase.java
??? StatusFetcherTest.java
Run Code Online (Sandbox Code Playgroud)
我build.gradle在test/目前看起来是这样的:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.stanfy.android:gradle-plugin-java-robolectric:2.0'
}
} …Run Code Online (Sandbox Code Playgroud) 我有一个Intellij 12的目录结构:
...
...test
- java
- com.mycompany.myproject
- package1 (contains code, etc,.)
- resourcePackage (want to contain .json files but can't mark as a resource)
- myOtherJunk.json
- o o o
- resources
- aResource.json
Run Code Online (Sandbox Code Playgroud)
问题是,如果我右键单击我的包名(com.mycompany.myproject),我只能添加包而不是目录(如现有资源文件夹的目录).
但是,我不想将我现在要读取的.json文件的现有资源文件夹用于我的测试类.
所以,我需要一些东西来支持:
// this already works for the resources directory per the .json file but doesn't for the
// myOtherJunk.json per the resourcePackage.
InputStream is = MyClassTest.class.getResourceAsStream("aResource.json");
Run Code Online (Sandbox Code Playgroud)