基本的に、JUnit の static suite() メソッドを使用して、IntelliJ IDEA プロジェクト (JUnit 統合テストを除く) ですべての JUnit 単体テストを実行したいと考えています。static suite() メソッドを使用する理由 その後、IntelliJ IDEA の JUnit テスト ランナーを使用して、アプリケーション内のすべての単体テストを実行できます (命名規則によってすべての統合テストを簡単に除外できます)。これまでのコードは次のようになります。
package com.acme;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class AllUnitTests extends TestCase {
public static Test suite() {
List classes = getUnitTestClasses();
return createTestSuite(classes);
}
private static List getUnitTestClasses() {
List classes = new ArrayList();
classes.add(CalculatorTest.class);
return classes;
}
private static TestSuite createTestSuite(List allClasses) {
TestSuite suite = new TestSuite("All Unit Tests");
for (Iterator i = allClasses.iterator(); i.hasNext();) {
suite.addTestSuite((Class<? extends TestCase>) i.next());
}
return suite;
}
}
メソッド getUnitTestClasses() を書き直して、クラス名が「IntegrationTest」で終わる場合を除き、TestCase を拡張するすべてのプロジェクト クラスを追加する必要があります。
たとえば、Maven でこれを簡単に実行できることはわかっていますが、統合テスト ランナーを使用できるように IntelliJ IDEA で実行する必要があります。緑色のバーが気に入っています :)