Я в основном хочу запустить все тесты JUnit в моем проекте IDEA IntelliJ (за исключением интеграционных тестов JUitit), используя метод static suite() JUnit. Зачем использовать метод static suite()? Потому что я могу использовать IntelliJ IDEA для тестирования JUnit для запуска всех модульных тестов в моем приложении (и легко исключить все интеграционные тесты по соглашению об именах). Код до сих пор выглядит следующим образом:Как я могу запускать все модульные тесты JUnit, кроме тех, которые заканчиваются на «IntegrationTest» в моем проекте IntelliJ IDEA, используя интегрированный тестовый бегун?
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, так что я могу использовать встроенный тест бегун - мне нравится зеленый бар :)
С тегами, что и Java, так что больше людей увидят его (не знаю, действительно ли он специфичен для Java, но он использует Java). – 2008-10-07 03:25:23
В качестве побочного примечания: рассмотрите возможность использования для каждого. Ваш for-loop будет выглядеть так: for (Класс testClass: allClasses) {suite.addTestSuite (testClass); } – crunchdog 2009-08-30 12:06:34