You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

更换GA后EvoSuite无法生成测试用例的问题求助

解决EvoSuite运行CELLULAR_GA时无法生成测试用例的问题

问题分析

从错误栈可以看到,核心问题是FitnessFunctionMock.isMaximizationFunction()被调用时抛出未实现异常。这个Mock类在多目标测试生成策略(MOSuiteStrategy)中被使用,但该类未实现必要方法,直接导致GA流程中断。

解决方案

1. 修正算法参数拼写

你的命令中-Dalgorithm=CELLULAR_GAw多了一个w,正确参数值应为CELLULAR_GA,虽然日志显示系统识别到了Cellular GA,但拼写错误可能引发潜在问题,先修正命令:

$EvoSuite -class tutorial.Stack -projectCP Tutorial_Stack/target/classes/ -Dalgorithm=CELLULAR_GA

2. 切换到单目标搜索策略

多目标策略(MOSuiteStrategy)依赖完整的适应度函数实现,当前环境中的Mock类不支持该流程,你可以指定使用单目标策略绕开这个问题:

$EvoSuite -class tutorial.Stack -projectCP Tutorial_Stack/target/classes/ -Dalgorithm=CELLULAR_GA -Dsearch_strategy=DEFAULT

3. 升级EvoSuite版本

你使用的1.2.1-SNAPSHOT版本可能存在该已知bug,建议升级到最新稳定版(比如1.5.0或更高),新版本已修复Mock类的方法缺失问题。

4. 检查Java版本兼容性

Ubuntu 12.04默认Java版本可能低于EvoSuite 1.2.1要求的Java 8,运行以下命令确认版本:

java -version

如果版本低于Java 8,需安装OpenJDK 8或Oracle JDK 8,确保环境符合要求。

5. 替换FitnessFunctionMock(针对扩展开发场景)

如果你是在扩展EvoSuite的开发中遇到该问题,需确保使用CELLULAR_GA时传递的是实际适应度函数实现,而非Mock类。修改MOSuiteStrategy或相关代码,将FitnessFunctionMock替换为具体的适应度函数(比如LineCoverageFitness等),确保isMaximizationFunction()方法被正确实现。

内容的提问来源于stack exchange,提问作者Gabriele Dario De Siano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 04:40:29