This project is a forked version of Evosuite. The original address of evosuite is here: https://github.com/EvoSuite/evosuite
In this project, we enhance Evosuite in terms of branch distance gradient recovering, object construction, smarter mutation, etc. Here is the relevant publication:
- Yun Lin, Jun Sun, Gordon Fraser, Ziheng Xiu, Ting Liu, and Jin Song Dong. Recovering Fitness Gradients for Interprocedural Boolean Flags in Search-Based Testing (ISSTA 2020), to appear.
You may refer to our website for more information on this project and how to run the experiment demonstrated in our paper: https://sites.google.com/view/evoipf/home
EvoSuite uses Maven.
First, ensure you have maven installed, to check, run
mvn -v
To build EvoSuite in Eclipse, make sure you have the M2Eclipse plugin installed, and import EvoSuite as Maven project. This will ensure that Eclipse correctly configure the Maven project.
In eclipse, we need to import Evosuite projects by Import>>Maven>>Existing Maven Projects. In general, we may import the following projects for compiling Evosuite:
- evosuite
- evosuite-client
- evosuite-master
- evosuite-runtime
- EvosuiteTest
After importing all the above projects, we need to modify pom.xml in evosuite project as follows (here is an Eclipse bug, which makes the IDE fail to recognize correct Java home path even if we set the correct JDK path in Eclipse):
We find <tools-default>
and replace its <exists>
and <toolsjar>
element with the file location inside
project.
For example:
<id>tools-default</id>
<activation>
<activeByDefault>true</activeByDefault>
<file>
<exists>C:\Program Files\Java\jdk1.8.0_261\libs\tools.jar</exists>
</file>
</activation>
<properties>
<toolsjar>C:\Program Files\Java\jdk1.8.0_261\libs\tools.jar</toolsjar>
</properties>
The "evosuite-master" project may have some compilation errors. In this case, we may include the target/generated -sources/jaxb
folder as build path.
-
If you encounter com.sun dependency issue:
Please replace the corresponding tools.jar with the absolute path of the jdk tools.jar and the error will go away.