testable-mock/docs/zh-cn/doc/use-in-ide.md

1.8 KiB
Raw Blame History

在IDE中运行单元测试

使用IntelliJ IDE

IntelliJ IDE对TestableMock所用到的JSR-269注释处理器以及maven-surefire-plugin插件的附加参数均支持良好。通常无需特殊配置,可开箱即用。

在IntelliJ 2020.3及后续版本里,其内置的编译期注释处理器运行时参数类型与标准Maven编译过程不一致。在TestableMock低于0.4.5的版本中会遇到@EnablePrivateAccess注解未生效的问题,可通过在系统配置的"Build Tools > Maven > Runner"中开启"Delegate IDE build/run actions to maven"选项解决。

delegate-ide-build-to-maven

使用Eclipse IDE

由于Eclipse内置的自动编译功能基于三方编译器实现,与标准javac编译过程不兼容会导致在IDE中运行测试用例时@EnablePrivateAccess注解无效。不过,通过PrivateAccessor工具类访问被测类私有成员的功能不会受编译器差异影响。

若项目中使用了@EnablePrivateAccess注解,可在Eclipse的命令行中使用mvn test -Dtest=<测试类名>mvn test -Dtest=<测试类名>#<测试用例名>来运行单个测试类或测试用例。

同时,由于Eclipse内置的单元测试执行器完全忽略pom.xml文件的配置因此若需使用Mock功能需进行额外配置。

以使用JUnit为例方法为从IDE工具栏的运行按钮旁边的小三角处下拉选择"Run Configurations...",左侧选择要运行单元测试的任务,在右侧切换到"arguments"标签页,在"VM Options"里添加-javaagent:参数,下图为示例,注意应修改testable-agent包为与实际情况匹配的本地Maven仓库路径。

eclipse-junit-configuration