JUnit и junit.framework.TestSuite - нет запускаемых методов - PullRequest
5 голосов
/ 10 октября 2008

Я провел несколько юнит-тестов (в тестовом классе). В учебнике, который я прочитал, сказано, что я должен сделать TestSuite для юнит-тестов.

Странно, что когда я запускаю модульный тест напрямую (выбирая тестовый класс - Запускать как тест jUnit), все работает нормально, хотя, когда я пытаюсь сделать то же самое с набором тестов, всегда есть исключение: java .lang.Exception: нет запускаемых методов.

Вот код набора тестов:

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;
    }

}

Есть идеи, почему это не работает?

Ответы [ 4 ]

5 голосов
/ 10 октября 2008

У меня нет опыта в муравьях - поэтому я не использую его для тестирования прямо сейчас.

При поиске в интернете кажется, что я путаю старое поведение 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));
    }
}
2 голосов
/ 12 июня 2009

Мне тоже пришлось немного разобраться, но я думаю, что это решит вашу проблему:

Вы делаете suite.addTestSuite (TestCase.class), в то время как вы должны были сделать suite.addTest (TestCase.class).

Вы также можете добавить набор тестов в набор тестов, чтобы создать целую иерархию наборов тестов. В этом случае вам придется использовать suite.addTest (). Но учтите, что тогда вы используете .suite (), а не .class: suite.addTest (MyTestSuite. suite () )!

1 голос
/ 03 марта 2018

Будьте внимательны при использовании дополнения кода в среде IDE, чтобы добавить импорт для @Test. Например, оно должно быть import org.junit.Test и , а не import org.testng.annotations.Test. Если вы воспользуетесь вторым по ошибке, вы получите сообщение об ошибке «нет запускаемых методов». (Я использовал Intellij Idea 2017, который вместо этого импортировал org.junit.jupiter.api.Test!)

0 голосов
/ 10 октября 2008

Конечно, это не сработает, так как вы не сообщаете комплекту тестов, какие у вас классы тестирования.

Но мне интересно, почему вы не используете "классический способ" для построения наборов тестов, который является ant с использованием задач jUnit для ant.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...