gpt4 book ai didi

java - IntelliJ 测试失败,Gradle 测试正常 : does not recognize JSON files in 'test/resources'

转载 作者:太空宇宙 更新时间:2023-11-04 12:16:13 25 4
gpt4 key购买 nike

在一个项目中,我想在我的测试类中使用 src/test/resources 中的一些示例 JSON 文件。该项目可以在https://github.com/kamikat/moshi-jsonapi上找到如果你想亲自测试一下。项目设置如下所示: project setup

在我的测试中,我加载资源文件如下:

public static String readResource(String resourceName) {
Scanner scanner = new Scanner(TestResources.class.getResourceAsStream(resourceName), "UTF-8");
return scanner.useDelimiter("\\A").next();
}

public static String getPrivateSample() {
return readResource("/private.json");
}

到目前为止,一切都很好。要将 *.json 文件添加到我的类路径中,我需要将其添加到 build.gradle 文件中:

sourceSets {
test {
resources {
srcDir "resources"
includes["**/*.json"]
}
}
}

现在我可以运行 ./gradlew test,并且所有测试都是绿色的 - 太棒了!但是:如果我从 IntelliJ (Android Studio 2.2 RC1) 运行测试,则会发生以下情况:

java.lang.NullPointerException: source

at java.util.Objects.requireNonNull(Objects.java:228)
at java.util.Scanner.<init>(Scanner.java:578)
at moe.banana.jsonapi2.TestResources.readResource(TestResources.java:8)
at moe.banana.jsonapi2.TestResources.getPrivateSampleSerialized(TestResources.java:17)
at moe.banana.jsonapi2.PrivateAndProtectedTest.serializePrivate(PrivateAndProtectedTest.java:58)
at [...]

问题似乎是从 IntelliJ 运行测试时,JSON 文件未添加到类路径中。我可以通过在项目设置中将资源添加为手动依赖项来临时解决此问题,但我正在寻找自动化解决方案。

我已经尝试过 this , thisthis ,但没有任何作用。一些答案表明它是 bug in IntelliJ ,它被标记为“已修复” - 但仍然没有适合我的解决方案。

有人让他的测试资源正常工作吗?

最佳答案

您可以让 IDEA 使用 gradle 运行测试:

文件 -> 设置 -> 构建、执行、部署 -> 构建工具 -> Gradle -> 运行器 -> 使用 Gradle Test Runner 运行测试

关于java - IntelliJ 测试失败,Gradle 测试正常 : does not recognize JSON files in 'test/resources' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39386028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com