21

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.

Manoj
  • 5,542
  • 9
  • 54
  • 80

4 Answers4

29

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

Community
  • 1
  • 1
Kaj
  • 10,862
  • 2
  • 33
  • 27
8

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.

Jonathan Holloway
  • 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
5

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.

Sean Patrick Floyd
  • 292,901
  • 67
  • 465
  • 588
2

If you use JUnit 4.x, just use @Ignore. See here

akauppi
  • 17,018
  • 15
  • 95
  • 120
MarcoS
  • 13,386
  • 7
  • 42
  • 63