WrapWith
You can use ScalaTest's WrapWith annotation to associate a wrapper suite with a non-Suite class, so
it can be run via ScalaTest. The WrapWith annotation is similar in spirit to JUnit's RunWith annotation.
A class will be considered annotated with WrapWith if it is annotated directly or one of its superclasses (but
not supertraits) are annotated with WrapWith.
The wrapper suite must have a public, one-arg constructor that takes a Class instance whose type parameter
is compatible with the class to wrap: i.e., the class being annotated with WrapWith.
ScalaTest will load the class to wrap and construct a new instance of the wrapper suite, passing in the Class
instance for the class to wrap.
Here's an example:
@WrapWith(classOf[Specs1Runner]) class LegacySpec extends Specification { // ... }
The Specs1Runner would need to have a public, no-arg constructor that accepts subclasses of Specification:
class Specs1Runner(clazz: Class[_ <: Specification]) { // ... }
Next, we'll discuss ScalaTest's philosophy and design.
ScalaTest is brought to you by Bill Venners and Artima.
ScalaTest is free, open-source software
released under the Apache
2.0 license.
If your company loves ScalaTest, please consider sponsoring the project.
Copyright © 2009-2026 Artima, Inc. All Rights Reserved.