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

WireMock为多目录映射配置使用了错误的_文件目录

陆雨华
2023-03-14

我将Spring Boot与Spring cloud contract wiremockcom一起使用。github。托马克赫斯特。wiremock依赖项。我的wiremock定义存储在json文件中。就像这样:

目录A/映射/detail-mapping-123.json:

{
  "request" : {
    "urlPath" : "/detail/123",
    "method" : "GET"
  },
  "response" : {
    "status" : 200,
    "bodyFileName" : "detail.json",
    "headers" : {
      "Content-Type" : "application/json;charset=UTF-8"
    }
  }
}

目录a/_文件/详细信息。json:

{
  "id": "123",
  "name": "name-123"
}

目录B/mappings/search-mapping-123。json:

{
  "request" : {
    "urlPath" : "/service/usa/search",
    "queryParameters" : {
      "query": {
        "equalTo": "123"
      }
    },
    "method" : "GET"
  },
  "response" : {
    "status" : 200,
    "bodyFileName" : "search-123.json",
    "headers" : {
      "Content-Type" : "application/json;charset=UTF-8"
    }
  }
}

目录b/_文件/search-123。json:

{
  "count": 1,
  "units": [
    {
      "name": "A123"
    }
  ]
}

我有一个标准的JUnit测试类,它带有以下注释:

@AutoConfigureWireMock(stubs = {"classpath:/directoryA/mappings", "classpath:/directoryB/mappings"},
        files = {"classpath:/directoryA", "classpath:/directoryB"},
        port = 18081)

这些文件看起来被wiremock正确识别,所有定义都被正确解析,但问题在于为请求分配正确的主体文件:当应用程序尝试执行请求时:

GET http://localhost:18081/service/usa/search?query=123 HTTP/1.1

然后我得到错误:

java.lang.RuntimeException: java.io.FileNotFoundException: /home/my-project-dir/target/test-classes/directoryA/__files/search-123.json (Not found such file or directory) 

所以问题是wiremock搜索目录directoryA中映射定义(directoryB/mappings/search-mapping-123.json)的bodyFileName部分中定义的文件,而不是使用映射文件的directoryB。如果会有

/home/my-project-dir/target/test-classes/directoryB/__files/search-123.json

然后一切都会好起来。。。

有人有类似的问题吗?我不确定这是我的配置中的错误还是wiremock库中的错误。

共有1个答案

缑勇锐
2023-03-14

尝试从注释@AutoConfigreWireMock中排除“存根”和“文件”参数,并将您的映射/文件放在src/test/资源中,wiremck默认从这些路径获取

 类似资料:
  • HDFS中的数据如下所示: 注意:数据每天和每小时加载到HDFS目录/ad_data/raw/reg_logs中。 此HDFS目录中有3个.tsv文件: 我怎样才能实现呢?如果需要,请更正我的配置单元表模式和获取数据的方法。 == 第二部分:

  • 问题内容: 因此,我正在用angularjs 1构建一个cordova / phonegap应用程序,并且试图在该应用程序的专用目录/沙箱中保存和读取一个名为calendar.txt的文件,但不能。 调试时我的控制台日志显示没有错误,如果文件不存在则正在创建文件,并且文件正在正确读取。但是事实并非如此。在设备上构建并运行时,不会保存数据。在指定的位置也没有创建文件。 我在控制台上记录了它试图使用的

  • 我正在尝试将目录配置映射用作运行Spring Boot应用程序的docker容器内的已装入卷。我正在将一些挂载路径传递给spring application.yaml之类的东西,但由于找不到配置,挂载似乎没有按预期工作。例如 像这样创建configmap 库伯内特斯亚米尔酒店 Dockerfile(还有其他复制jar文件的步骤,我没有详细介绍)

  • 我正在尝试实现一个Spring Integration类,它获取一个. xml文件并对其进行解析,如果有效,就将其移动到一个“存档”目录,如果无效,就将其移动到一个错误目录。 然而,每当调用< code>calback.execute()时,我都会得到这个错误,我不太明白为什么。 虽然我有一个消息处理程序,但我怀疑这个问题的原因是我没有重写handle方法。但我不知道该怎么做。

  • 我试图让maven安装工作,但我总是得到这个错误 C:\Windows\System32 我知道错误说明了一切,但我在这里尝试了一切。我有以下设置: 系统变量: M2_HOME: C:\程序文件\阿帕奇软件基金会\阿帕奇-maven-3.3.3 M2:%M2_HOME%\bin JAVA _ HOME:C:\ Program Files \ JAVA \ JDK 1 . 7 . 0 _ 51 我添