⛳
EvoSuite Mavenプラグインの使い方
EvoSuiteのMavenプラグインの使い方についての備忘録.
参考:https://www.evosuite.org/documentation/maven-plugin/
pom.xml
へプラグイン追加
Mavenプロジェクトのpom.xml
にEvoSuiteのMavenプラグインを追加する.
<pluginManagement>
<plugins>
<plugin>
<groupId>org.evosuite.plugins</groupId>
<artifactId>evosuite-maven-plugin</artifactId>
<version>${evosuiteVersion}</version>
<executions><execution>
<goals> <goal> prepare </goal> </goals>
<phase> process-test-classes </phase>
</execution></executions>
</plugin>
</plugins>
</pluginManagement>
次に,EvoSuiteのバージョンを指定するプロパティevosuiteVersion
を追加する.
<properties>
<evosuiteVersion>1.0.6</evosuiteVersion>
</properties>
EvoSuiteの最新版はv1.2.0なのだが,残念ながらMavenプラグインではv1.0.6までしか提供されていない.
最新版を使いたい人はパッケージ版を使おう.
単体テストの実行に使うjunitはv4.12以降が必要.
dependency
のjunit
のversion
がv4.12以降になっているのを確認しておく.
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
利用可能なゴール
evosuite:generate
EvoSuiteでテストケースを生成する.
生成対象は全サブモジュール内の全クラス.
生成されたテストクラスは.evosuite/
ディレクトリに保存される.
プロジェクトのtest
ディレクトリ(例えばsrc/test/java/
)に移動したい場合は,evosuite:generate
を実行した後,evosuite:export
(説明は後述)を実行する必要がある.
事前にコードをコンパイルしておく必要がある.
以下のコマンドを実行すればコンパイルとテストケース生成を同時に実行できる:
mvn compile evosuite:generate
利用可能なパラメータは以下の通り:
パラメータ名 | 説明 | デフォルト値 |
---|---|---|
memoryInMB |
EvoSuiteに事前に割り当てられるメモリ量(単位はMB) | 800 |
cores |
EvoSuiteが利用できるCPUコア数 | 1 |
timeInMinutesPerClass |
EvoSuiteがテスト生成に費やせるクラスあたりの時間(単位は分) | 2 |
evosuite:info
これまでに生成されたテストの各種情報を出力する.
evosuite:export
生成されたテストをtargetFolder
パラメータで指定されたディレクトリにコピーする.
パラメータ名 | 説明 | デフォルト値 |
---|---|---|
targetFolder |
テストのコピー先となるディレクトリ | src/test/java/ |
使用例
例えば
mvn -DmemoryInMB=2000 -Dcores=2 evosuite:generate evosuite:export test
を実行すると,
- EvoSuiteに2000MBのメモリと2つのコアを割り当てた状態で,
- テストケースを生成し,
- 生成されたテストを
src/test/java/
へコピーして, - テストを実行
してくれる.
Discussion