В основном я хочу запустить все тесты JUnit unit в моем проекте IntelliJ IDEA (исключая интеграционные тесты JUnit), используя метод static suite () из 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 () должен быть переписан для добавления всех классов проекта, расширяющих TestCase, за исключением случаев, когда имя класса заканчивается на "IntegrationTest".
Я знаю, что я могу легко сделать это, например, в Maven, но мне нужно сделать это в IntelliJ IDEA, чтобы я мог использовать встроенный тестовый прогон - мне нравится зеленая полоса:)