mirror of
https://github.com/alibaba/testable-mock.git
synced 2025-01-25 03:40:38 +08:00
add second solution for IDE test problem
This commit is contained in:
parent
4b282179f4
commit
ba2a823c19
@ -11,13 +11,41 @@
|
||||
|
||||
这是由于IDE运行单个测试用例时只会运行`maven-surefire-plugin`插件,跳过了`testable-maven-plugin`插件执行,导致Mock功能所需的JavaAgent没有随测试启动。
|
||||
|
||||
解决方法是在单元测试配置的"虚拟机参数(VM Option)"属性值末尾添加JavaAgent启动参数:`-javaagent:${HOME}/.m2/repository/com/alibaba/testable/testable-agent/0.2.1/testable-agent-0.2.1.jar`
|
||||
解决方法有两种:
|
||||
|
||||
**方法一**:在单元测试配置的"虚拟机参数(VM Option)"属性值末尾添加JavaAgent启动参数:`-javaagent:${HOME}/.m2/repository/com/alibaba/testable/testable-agent/0.2.1/testable-agent-0.2.1.jar`
|
||||
|
||||
> PS:请将路径中的版本号替换成实际使用的版本号
|
||||
|
||||
![idea-vm-option](https://testable-code.oss-cn-beijing.aliyuncs.com/idea-vm-option.png)
|
||||
|
||||
**方法二**:不使用`testable-maven-plugin`插件,直接配置JavaAgent参数到`maven-surefire-plugin`插件上。(`JMockit`也是使用了这种方法)配置方法为:
|
||||
|
||||
> PS:请将路径中的版本号替换成实际使用的版本号
|
||||
|
||||
```xml
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<configuration>
|
||||
<argLine>-javaagent:${settings.localRepository}/com/alibaba/testable/testable-agent/0.2.1/testable-agent-0.2.1.jar</argLine>
|
||||
</configuration>
|
||||
</plugin>
|
||||
```
|
||||
|
||||
用这种方法需要注意,如果项目同时还使用了`Jacoco`的`on-the-fly`模式(默认模式)统计单元测试覆盖率,则需要在参数中再添加一个`@{argLine}`参数,完整配置如下:
|
||||
|
||||
```xml
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<configuration>
|
||||
<argLine>@{argLine} -javaagent:${settings.localRepository}/com/alibaba/testable/testable-agent/0.2.1/testable-agent-0.2.1.jar</argLine>
|
||||
</configuration>
|
||||
</plugin>
|
||||
```
|
||||
|
||||
**3. Testable的`verify`方法只能验证调用次数,不能验证调用参数**
|
||||
|
||||
当前版本尚未实现对调用参数的验证功能,欢迎贡献代码。
|
||||
功能开发中,预计在`0.2.2`版本提供,敬请关注代码更新。
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user