As far as I know to skip a test case the simplest thing to do is to remove the @Test
annotation, but to do it over a large number of test cases is cumbersome. I was wondering if there is any annotation available in JUnit to turn off few test cases conditionally.

- 5,542
- 9
- 54
- 80
-
3The appropriate way is to use the @Ignore annotation, but it's not conditional. – JB Nizet May 23 '11 at 10:39
4 Answers
Hard to know if it is the @Ignore
annotation that you are looking for, or if you actually want to turn off certain JUnit tests conditionally. Turning off testcases conditionally is done using Assume
.
You can read about assumptions in the release notes for junit 4.5
There's also a rather good thread here on stack over flow: Conditionally ignoring tests in JUnit 4
As other people put here @Ignore ignores a test.
If you want something conditional that look at the junit assumptions.
http://junit.sourceforge.net/javadoc/org/junit/Assume.html
This works by looking at a condition and only proceeding to run the test if that condition is satisfied. If the condition is false the test is effectively "ignored".
If you put this in a helper class and have it called from a number of your tests you can effectively use it in the way you want. Hope that helps.

- 62,090
- 32
- 125
- 150
-
I'm not sure if that what the OP has wanted, but it is exactly what *I* was looking for, thank you! – Michael Aug 23 '13 at 10:56
You can use the @Ignore
annotation which you can add to a single test or test class to deactivate it.
If you need something conditional, you will have to create a custom test runner that you can register using
@RunWith(YourCustomTestRunner.class)
You could use that to define a custom annotation which uses expression language or references a system property to check whether a test should be run. But such a beast doesn't exist out of the box.

- 292,901
- 67
- 465
- 588
-
Don't know if he edited his question, but `@Ignore` is not conditional. – Alan Escreet May 23 '11 at 10:58
-
@Alan if I get the OP right, his interpretation of conditional is "whether he adds the annotation or not" :-) – Sean Patrick Floyd May 23 '11 at 10:59
-
I'm sorry if I wasn't clear, by conditional I meant something like @RunIf(boleanExpression). but it seems such a thing is not available. – Manoj May 23 '11 at 11:22
-
1
-
Don't know if he edited his question, but `@Ignore` is not conditional. – Alan Escreet May 23 '11 at 10:58