Annotation used to tag a test, or suite of tests, as ignored.
Note: This is actually an annotation defined in Java, not a Scala trait. It must be defined in Java instead of Scala so it will be accessible
at runtime. It has been inserted into Scaladoc by pretending it is a trait.
If you wish to temporarily ignore an entire suite of tests, you can annotate the test class with @Ignore, like this:
package org.scalatest.examples.flatspec.ignoreall
import org.scalatest._
@Ignore
class SetSpec extends FlatSpec {
"An empty Set" should "have size 0" in {
assert(Set.empty.size === 0)
}
it should "produce NoSuchElementException when head is invoked" in {
intercept[NoSuchElementException] {
Set.empty.head
}
}
}
When you mark a test class with a tag annotation, ScalaTest will mark each test defined in that class with that tag.
Thus, marking the SetSpec in the above example with the @Ignore tag annotation means that both tests
in the class will be ignored. If you run the above SetSpec in the Scala interpreter, you'll see:
scala> new SetSpec execute
An empty Set- should have size 0 !!! IGNORED !!!
- should produce NoSuchElementException when head is invoked !!! IGNORED !!!
Note that marking a test class as ignored won't prevent it from being discovered by ScalaTest. Ignored classes
will be discovered and run, and all their tests will be reported as ignored. This is intended to keep the ignored
class somewhat visible, to encourage the developers to eventually fix and un-ignore it. If you want to
prevent a class from being discovered at all, use the DoNotDiscover annotation instead.
Another use case for @Ignore is to mark test methods as ignored in traits Spec
and fixture.Spec. Here's an example:
package org.scalatest.examples.spec.ignore
import org.scalatest._
class SetSpec extends Spec {
@Ignore def `an empty Set should have size 0` {
assert(Set.empty.size === 0)
}
def `invoking head on an empty Set should produce NoSuchElementException` {
intercept[NoSuchElementException] {
Set.empty.head
}
}
}
If you run this version of SetSpec in the Scala interpreter, you'll see that it
runs only the second test and reports that the first test was ignored:
scala> new SetSpec execute
SetSpec:
- an empty Set should have size 0 !!! IGNORED !!!- invoking head on an empty Set should produce NoSuchElementException
Annotation used to tag a test, or suite of tests, as ignored.
Note: This is actually an annotation defined in Java, not a Scala trait. It must be defined in Java instead of Scala so it will be accessible at runtime. It has been inserted into Scaladoc by pretending it is a trait.
If you wish to temporarily ignore an entire suite of tests, you can annotate the test class with
@Ignore
, like this:When you mark a test class with a tag annotation, ScalaTest will mark each test defined in that class with that tag. Thus, marking the
SetSpec
in the above example with the@Ignore
tag annotation means that both tests in the class will be ignored. If you run the aboveSetSpec
in the Scala interpreter, you'll see:Note that marking a test class as ignored won't prevent it from being discovered by ScalaTest. Ignored classes will be discovered and run, and all their tests will be reported as ignored. This is intended to keep the ignored class somewhat visible, to encourage the developers to eventually fix and un-ignore it. If you want to prevent a class from being discovered at all, use the
DoNotDiscover
annotation instead.Another use case for
@Ignore
is to mark test methods as ignored in traitsSpec
andfixture.Spec
. Here's an example:If you run this version of
SetSpec
in the Scala interpreter, you'll see that it runs only the second test and reports that the first test was ignored:scala> new SetSpec execute SetSpec: - an empty Set should have size 0 !!! IGNORED !!! - invoking head on an empty Set should produce NoSuchElementException