Junit4: Running a Suite of particular Test methods
Asked Answered
L

1

6

Is there a way to create a suite of test methods, not just test classes?

I'd like to put together a test suite that just runs particular tests methods from a test class. I don't see a way to do this from my limited junit knowledge and from searching the web.

Leopoldeen answered 24/1, 2011 at 14:38 Comment(1)
Just some little stupid thought: Create new class and paste important methods you want to run from various tests, it's complete fake but it should work for you ...Pentobarbital
P
8

Use Categories feature in JUnit4.

Example: if some methods scattered both in ATest and BTest are expected to executed :

//Define Categories
@RunWith(Categories.class)  
@IncludeCategory(NeedTest.class)  
@SuiteClasses({ ATest.class,  BTest.class })  
class MySuite{
...
}

Then in ATest and BTest, annotate your expect methods as:

@Test
@Category(NeedTest.class)  
public void test()

When you run MySuite, only the methods annotated with @Category(NeedTest.class) will be executed. Of course, you could create multiple test categories,

ps: NeedTest.class is just a marker class, it can be any class.

Predate answered 27/1, 2011 at 4:51 Comment(3)
Hi Shengyuan, if we use our customize runner, then this feature will be disabled for us except we implement this feature at our own runner, right?Capone
How to actually run the MySuite class?Harmon
This is so inconvenient when compared to TestNg test suite xml file. Why does Junit not allow us to select methods without annotating the test methods ? Has this inconvenience been fixed in Junit 5?Rahal

© 2022 - 2024 — McMap. All rights reserved.