Annotation used to tag a test, or suite of tests, as being CPU-intensive (i.e., consuming a lot of CPU time when it runs).
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 network-intensive, you can annotate the test class with @CPU, like this:
package org.scalatest.examples.flatspec.cpuall
import org.scalatest._
import tags.CPU
@CPU
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 @CPU tag annotation means that both tests
in the class are CPU-intensive.
Another use case for @CPU is to mark test methods as CPU-intensive in traits Spec
and fixture.Spec. Here's an example:
package org.scalatest.examples.spec.cpu
import org.scalatest._
import tags.CPU
class SetSpec extends Spec {
@CPU 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.
Annotation used to tag a test, or suite of tests, as being CPU-intensive (i.e., consuming a lot of CPU time when it runs).
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 network-intensive, you can annotate the test class with
@CPU
, 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@CPU
tag annotation means that both tests in the class are CPU-intensive.Another use case for
@CPU
is to mark test methods as CPU-intensive in traitsSpec
andfixture.Spec
. Here's an example: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
.