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

问题描述 投票:0回答:2

我正在尝试使用位于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

java spring gradle
2个回答
1
投票

该文件需要在

src\test\resources\test-file.json

代替

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

0
投票

根据您的IDE,您的资源目录可能不在类路径中。

在IntelliJ中:

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

在Eclipse中:

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