Ubuntu 22.04下Maven编译TestNG报错:Error creating object factory
解决Surefire启动Fork进程时TestNG对象工厂创建失败问题
问题重现
在Ubuntu 22.04系统的IntelliJ中编译Maven项目时,执行特定测试抛出如下错误:
org.testng.TestNGException: Error creating object factory: class com.project.AbstractClassTest
相关背景及环境:
AbstractClassTest继承自PowerMock的PowerMockTestCase类,且该类包含带@ObjectFactory注解的方法- 当前依赖版本:
- Maven 3.6.3
- JDK 1.8.362
- Surefire 2.22.2
- TestNG 6.14.3
- PowerMock 1.7.4
已尝试无效操作:
- 降级Surefire和TestNG版本
- 删除本地Maven仓库、清理缓存后执行
mvn clean install - 添加
-DskipTests参数可成功构建,但执行测试仍失败 - 同代码仓库在同事环境可正常运行,推测为本地环境问题
排查与解决方案
1. 修正IntelliJ测试运行配置
- 打开IntelliJ的Run/Debug Configurations,找到对应的测试配置
- 在VM options中添加PowerMock必备的javaagent参数(替换为本地Maven仓库中对应jar的实际路径):
-javaagent:~/.m2/repository/org/powermock/powermock-module-javaagent/1.7.4/powermock-module-javaagent-1.7.4.jar - 勾选Use classpath of module,确保依赖加载路径正确
2. 调整Surefire插件配置
在项目pom.xml中修改Surefire插件配置,强制指定PowerMock的TestNG对象工厂,避免自定义@ObjectFactory方法冲突:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.2</version> <configuration> <forkCount>1</forkCount> <reuseForks>false</reuseForks> <useSystemClassLoader>false</useSystemClassLoader> <argLine> -javaagent:${settings.localRepository}/org/powermock/powermock-module-javaagent/1.7.4/powermock-module-javaagent-1.7.4.jar </argLine> <properties> <property> <name>objectFactory</name> <value>org.powermock.modules.testng.PowerMockObjectFactory</value> </property> </properties> </configuration> <dependencies> <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-module-testng</artifactId> <version>1.7.4</version> <scope>test</scope> </dependency> </dependencies> </plugin> </plugins> </build>
3. 校验本地JDK环境一致性
- 执行终端命令确认当前使用的JDK版本:
java -version - 在IntelliJ中通过File > Project Structure > Project确认Project SDK为1.8.362,且所有Module SDK与之一致
4. 重置IntelliJ缓存与项目配置
- 执行File > Invalidate Caches...,勾选"Clear file system cache and local history"后重启IntelliJ
- 删除项目根目录下的
.idea文件夹,重新导入Maven项目
内容的提问来源于stack exchange,提问作者erica
相关产品推荐
相关产品推荐

