maven-failsafe-plugin - Mockserver maven 插件:从文件中初始化 mockserver 期望
问题描述
我正在使用 Mockserver maven 插件来模拟一些集成测试的请求。
我的 pom.xml 看起来像:
...
<plugin>
<groupId>org.mock-server</groupId>
<artifactId>mockserver-maven-plugin</artifactId>
<version>5.5.1</version>
<configuration>
<serverPort>1080</serverPort>
<logLevel>DEBUG</logLevel>
<initializationClass>com.mycompany.ExampleInitializationClass</initializationClass>
</configuration>
<executions>
<execution>
<id>run-mockserver</id>
<phase>pre-integration-test</phase>
<goals>
<goal>start</goal>
</goals>
</execution>
<execution>
<id>stop-mockserver</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
...
这里的问题是我必须使用类 ( com.mycompany.ExampleInitializationClass
) 提供期望,并且我想使用 JSON 文件提供期望,如下所述:
http://www.mock-server.com/mock_server/initializing_expectations.html
我在插件配置中没有找到任何方法来使用属性初始化 Mockserver:
-Dmockserver.initializationJsonPath
有没有办法做到这一点?提前致谢。
解决方案
您只需要定义initializationJson
指定 JSON 文件路径的属性即可:
<plugin>
<groupId>org.mock-server</groupId>
<artifactId>mockserver-maven-plugin</artifactId>
<version>5.5.1</version>
<configuration>
<serverPort>1080</serverPort>
<logLevel>DEBUG</logLevel>
<initializationJson>expectations.json</initializationJson>
</configuration>
<executions>
...
</executions>
</plugin>
这里的问题是文件路径是相对于testClasspath
目录(例如${project.basedir}/target/test-classes/
)的,所以你必须在那里复制期望文件。您可以为此使用例如 maven-antrun-plugin(如下所示)或 maven-resources-plugin。
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<copy file="your/expectations.json" todir="${project.basedir}/target/test-classes/"/>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
推荐阅读
- powerbi - 将多列转换为一列值 DAX/PowerBI
- android - 为什么扩展功能在另一个模块中不可见?
- python - 对特定索引应用 .astype() 不起作用
- android - 我想在 android 中使用 volley 发送图像和一些数据
- android - Android 10 - 设置 FLAG_SECURE 标志无法隐藏屏幕信息
- css - 强制 angular2-multiselect 下拉菜单向下打开
- javascript - 从字符串的开头删除特定字符串?
- python - 打开文件后删除包含目录是否安全?
- python-3.x - FLASK:即使执行已提交,在表单中输入的新值也不会插入到数据库中
- javascript - 根据类的组合显示显示/隐藏 - Javascript Vanilla