Annotation used to tag a test, or suite of tests, as being slow (i.e., requiring a long time to run).
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 mark an entire suite of tests as being slow, you can annotate the test class with @Slow, like this:
package org.scalatest.examples.flatspec.slowall
import org.scalatest._
import tags.Slow
@Slow
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 @Slow tag annotation means that both tests
in are slow.
Another use case for @Slow is to mark test methods as slow in traits Spec
and fixture.Spec. Here's an example:
package org.scalatest.examples.spec.slow
import org.scalatest._
import tags.Slow
class SetSpec extends RefSpec {
@Slow 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
}
}
}
The main use case of annotating a test or suite of tests is to select or deselect them during runs by supplying tags to include and/or exclude. For more information,
see the relevant section in the documentation of object Runner.
Note that because reflection is not supported on Scala.js, this annotation will only work on the JVM, not on Scala.js.
Annotation used to tag a test, or suite of tests, as being slow (i.e., requiring a long time to run).
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 mark an entire suite of tests as being slow, you can annotate the test class with
@Slow, like this:package org.scalatest.examples.flatspec.slowall import org.scalatest._ import tags.Slow @Slow 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
SetSpecin the above example with the@Slowtag annotation means that both tests in are slow.Another use case for
@Slowis to mark test methods as slow in traitsSpecandfixture.Spec. Here's an example:package org.scalatest.examples.spec.slow import org.scalatest._ import tags.Slow class SetSpec extends RefSpec { @Slow 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 } } }The main use case of annotating a test or suite of tests is to select or deselect them during runs by supplying tags to include and/or exclude. For more information, see the relevant section in the documentation of object
Runner.Note that because reflection is not supported on Scala.js, this annotation will only work on the JVM, not on Scala.js.