Gradle + Spring Boot-如何在“ test” sourceSet中的测试中读取“ itest” sourceSet中的资源

时间:2019-08-26 15:54:17

标签: gradle source-sets

我在保存级别具有sourceSet no results founditesttest

main sourceSet中的测试中,我想在test中读取文本文件。有可能吗?

1 个答案:

答案 0 :(得分:0)

是的,我找到了方法。

只需更改sourceSet public class SetDeserializer extends JsonDeserializer<Set> { @Override public Set deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { ObjectMapper mapper = (ObjectMapper) jp.getCodec(); JsonNode node = mapper.readTree(jp); Set<Object> resultSet = new HashSet<>(); if (node != null) { if (node instanceof ArrayNode) { ArrayNode arrayNode = (ArrayNode) node; Iterator<JsonNode> nodeIterator = arrayNode.iterator(); while (nodeIterator.hasNext()) { JsonNode elementNode = nodeIterator.next(); resultSet.add(mapper.readValue(elementNode.toString(), Object.class)); } } else { resultSet.add(mapper.readValue(node.toString(), Object.class)); } } return resultSet; } } 的配置:修改mapper.addMixIn(Set.class, SetMixin.class); 以将另一条路径添加到值集。

test中:

resources.srcDirs

请注意,当您指定此文件夹作为所需文件的直接父目录时,使用build.gradle读取文件时,只需使用sourceSets { test { output.resourcesDir = "build/resources/test" // copy test resources to build resources.srcDirs = ['src/test/resources', 'src/itest/resources/fixtures/preAuthMock2'] // to include example json from itest resources } } 作为路径,而不是{{ 1}}。