1.8 KiB
在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"选项解决。
使用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仓库路径。