当前位置: 首页 > 知识库问答 >
问题:

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

邵骁
2023-03-14

我试图使用位于src/test/resources下的文件进行单元测试,但当我试图读取它时,我不能总是获得空指针。

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

我尝试了谷歌搜索问题时发现的许多代码变体,但没有成功。

我的身材。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\test\java\com\moc\omc\x\y\MyUnitTest。JAVA

测试文件在这里:

src\test\java\resources\test文件。json

共有3个答案

长孙景焕
2023-03-14

我也遇到了同样的情况,并通过使用maven'package'而不是maven'install'解决了这个问题

苏承载
2023-03-14

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

在IntelliJ中:

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

在Eclipse中:

  1. 去“跑步”-
钱繁
2023-03-14

文件需要在

src\test\resources\test-file.json

而不是

src\test\java\resources\test-file.json 
 类似资料:
  • 我正在使用MockitoJUnit库测试我的控制器。有些变量声明为: 当我运行测试时,它找不到我的值。资源文件夹中的端口作为属性文件。我的控制器运行没有问题,但是当我运行我的controller junit测试时,端口号是空的。 我在课堂上使用了以下注释: 我在jUnit测试中使用了下面的方法 我很困惑,有人知道我是否错过了一些设置吗?谢谢!

  • 背景:我想根据模式自动验证XML文件。为此,我在中创建了一个maven-project和一个-class。 为了运行测试,我在中创建了。我的想法是将XML和XSD文件(我想要验证)放入文件夹,并按文件名“抓取”它们。但是当我运行时,找不到文件。 我的测试类: 当我运行时,我得到了一个文件找不到的异常,例如-它在资源文件夹中。 我尝试了Maven(surefire)的解决方案:通过-标记复制文件,从

  • 资源(Asset)代表 source 文件夹中除了文章以外的所有文件,例如图片、CSS、JS 文件等。比方说,如果你的Hexo项目中只有少量图片,那最简单的方法就是将它们放在 source/images 文件夹中。然后通过类似于 ![](/images/image.jpg) 的方法访问它们。 对于那些想要更有规律地提供图片和其他资源以及想要将他们的资源分布在各个文章上的人来说,Hexo也提供了更组

  • 我已经将我的项目上传到githttps://github.com/gitekiras/spring-boot-gradle-mvc 我不能得到正确的是,我不能加载css和js从资源文件夹。 当我把它放在webapp文件夹,我能够得到每件事情的工作,但根据教程,我应该把它们放在资源的静态文件夹。 但是当我这样做的时候,我不能加载页面上的css和js。 谁能说出我错过了什么? 另外:当我在浏览器日志中

  • 如何使用URI从资源文件夹的子文件夹中读取文件 资源文件夹中有一些json文件,如: 现在我想在我的课堂上读这个 这是我正在尝试的。 我的东西工作正常,但我遇到的问题是我不想使用< code>toURI,因为它会失败。

  • 我正在从主类访问资源文件夹中的文件 我收到了这个错误: 我甚至打开了jar文件,remoteUnitsIdsInOldServer.txt文件就在那里,在类内部