简体   繁体   中英

How to add test cases to a suite using jUnit?

I have 2 test classes, both extend TestCase . Each class contains a bunch of individual tests which run against my program.

How can I execute both classes (and all tests they have) as part of the same suite?

I am using jUnit 4.8.

In jUnit4 you have something like this:

@RunWith(Suite.class)
@SuiteClasses({
    SomeTest.class,
    SomeOtherTest.class,
    ...
    })
public class AllTests {}

If you want the Eclipse GUI suite builder (New > JUnit Test suite), you have to add

public static junit.framework.Test suite() {
   return new JUnit4TestAdapter(SomeTest.class);
}

to each of your test classes st the GUI test suite builder recognizes your test.

Create TestClass and override suite() method and run newly created TestClass.

 public static Test suite()
    {
        TestSuite suite = new TestSuite("Test ExpenseTest");
        suite.add(TestCase1.class);
        suite.add(TestCase2.class);
        return suite;
    }

JUnit 3 supported TestSuite and public static Test suite() . JUnit 4 doesn't support it (it creates added test classes, but doesn't launch test methods).

But you can launch a subsuite of tests inside a suite.

import org.junit.runner.RunWith
import org.junit.runners.Suite

@RunWith(Suite::class)
@Suite.SuiteClasses(
    Test1::class,
    TestSuite1::class
)
class StartTest

Then inside StartTest you can add test classes and test suites.

@RunWith(Suite::class)
@Suite.SuiteClasses(
    Test2::class,
    Test3::class,
    TestSuite2::class
)
class TestSuite1

@RunWith(Suite::class)
@Suite.SuiteClasses(
    Test4::class,
    Test5::class
)
class TestSuite2

This way you can join test classes into groups (to have a list of 10 items instead of 100).

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM