Я сделал несколько модульных тестов (в тестовом классе). В учебнике, который я прочитал, сказано, что я должен создать TestSuite для модульных тестов.
Странно то, что когда я запускаю модульный тест напрямую (выбирая тестовый класс - Run as jUnit test), все работает нормально, хотя когда я пытаюсь сделать то же самое с тестовым набором, всегда возникает исключение: java.lang. Исключение: нет исполняемых методов.
Вот код набора тестов:
import junit.framework.Test;
import junit.framework.TestSuite;
public class AllTests {
public static Test suite() {
TestSuite suite = new TestSuite("Test suite for com.xxx.yyyy.test");
//$JUnit-BEGIN$
suite.addTestSuite(TestCase.class);
//$JUnit-END$
return suite;
}
}
Есть идеи, почему это не работает?




Конечно, это не сработает, поскольку вы не сообщаете комплекту тестов, какие у вас тестовые классы.
Но мне интересно, почему вы не используете «классический способ» для создания наборов тестов, который заключается в использовании Ant-задач jUnit.
У меня нет опыта работы с муравьями, поэтому я не использую его для тестирования прямо сейчас.
При поиске в Интернете мне кажется, что я путаю старое поведение jUnit 3.8 и jUnit 4.0. Пробуем сейчас использовать «новое поведение»
отредактировал:
теперь это работает:
AllTest изменен на:
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
@RunWith(value=Suite.class)
@SuiteClasses(value = {TestCase.class})
public class AllTests {
}
TestCase изменен на:
import static org.junit.Assert.assertTrue;
import org.junit.Test;
public class TestCase {
@Test
public void test1 {
assertTrue (tmp.getTermin().equals(soll));
}
}
Мне тоже пришлось немного разобраться, но я думаю, что это решает вашу проблему:
Вы делаете suite.addTestSuite (TestCase.class), тогда как вы должны были сделать suite.addTest (TestCase.class).
Вы также можете добавить набор тестов в набор тестов, чтобы создать целую иерархию наборов тестов. В этом случае вам придется использовать suite.addTest (). Но обратите внимание, что затем вы используете .suite (), а не .class: suite.addTest (MyTestSuite.люкс ())!
Будьте осторожны при использовании автозавершения кода в среде IDE для добавления импорта для @Test. Например, это должен быть import org.junit.Test и нетimport org.testng.annotations.Test. Если вы по ошибке воспользуетесь вторым, то получите ошибку «Нет исполняемых методов».
(Я использовал Intellij Idea 2017, который вместо этого импортировал org.junit.jupiter.api.Test!)
Привет, я делаю то же самое, но получаю ошибку
no runnable methods