无法使用资源文件夹中的文件进行jUnit测试

时间:2018-05-29 16:22:43

标签: java spring gradle

我尝试使用位于src / test / resources下的文件进行单元测试,但是当我试图读取它时,我总是无法得到一个nullpointer。

我使用的是Spring Boot 2.0.2,JDK 10和Gradle。

我尝试了很多代码,但是我没有成功。

我的build.gradle看起来像这样:

buildscript {
     ext {
        springBootVersion = '2.0.2.RELEASE'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

group = 'com.moc.omc'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 10

repositories {
    mavenCentral()
    jcenter()
}
dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    compile("org.springframework.boot:spring-boot-devtools")
    compile("org.springframework.boot:spring-boot-starter-data-jpa")
    compile("javax.xml.bind:jaxb-api:2.3.0")
    compile("com.h2database:h2")
    compile("io.springfox:springfox-swagger2:2.9.0")
    compile("io.springfox:springfox-swagger-ui:2.9.0")
    testCompile('org.springframework.boot:spring-boot-starter-test')
}

我的测试是这些系列的一些变体(我尝试的没有任何成功):

@Test
public void isSortedCorrectly() throws IOException {
    ClassLoader classLoader = getClass().getClassLoader();
    File file = new File(classLoader.getResource("test-file.json").getFile()); // java.lang.NullPointerException
}

测试课在这里:

  

SRC \测试\ java中\ COM \ MOC \ OMC \ X \ Y \ MyUnitTest.java

测试文件在这里:

  

SRC \测试\的java \资源\测试file.json

2 个答案:

答案 0 :(得分:1)

文件需要在

src\test\resources\test-file.json

而不是

src\test\java\resources\test-file.json 

答案 1 :(得分:0)

取决于您的IDE,您的资源目录可能不在类路径中。

在IntelliJ中:

  1. 右键单击您的test / resources(或test / java / resources)目录
  2. 选择“将目录标记为...”子菜单
  3. 选择“测试资源根”
  4. 此目录将显示装饰图形,表示该图形位于类路径中

在Eclipse中:

  1. 转到“运行->运行配置...”(如果调试为“运行->调试” 配置...”)
  2. 您使用的Open Run(调试)配置
  3. 打开“类路径”标签
  4. 选择“用户条目”,然后单击右侧的“高级...”
  5. 在打开的窗口中选择“添加文件夹”,指向您的src / test / resources
  6. 此文件夹将显示在“用户条目”下,然后您应将其向上移动以使其在类路径中成为第一个