在我的春季项目中,我有这样一个单元测试:
@ExtendWith(SpringExtension.class)
@WebMvcTest(BuildingController.class)
class BuildingControllerTest {
    @Value("classpath:building/CreateBuildingRequest.json")
    Resource createBuildingRequest;
...
}我使用@value注释加载一个测试输入文件,并在我的IDE上成功运行测试用例。
但是当我在azure管道中运行测试用例时,我得到了fileNotFoundException,表示文件不存在。

这是我的天蓝色管道
trigger:
  - main
pool:
  vmImage: ubuntu-latest
steps:
  - task: Maven@3
    displayName: 'Package Maven'
    inputs:
      mavenPomFile: 'pom.xml'
      goals: 'verify'意见:将@value改为
Resource createBuildingRequest = new ClassPathResource("Building/CreateBuildingRequest.json");也会产生同样的问题,但是,如果像这样加载:
    public static InputStream loadFileAsStream(String path){
        return Thread.currentThread().getContextClassLoader().getResourceAsStream(path);
    }在IDE和azure管道上工作,
为什么?
发布于 2022-02-14 01:36:35
我只需将我的测试文件文件夹名从“构建”更改为“构建”,它就能工作了。

但是,当我将文件夹作为“构建”,并将@value更改为@Value("classpath:Building/CreateBuildingRequest.json")时,它没有工作。
留下这篇文章来记录这个问题。
https://stackoverflow.com/questions/71098400
复制相似问题