org.scalatest.WrapWith Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of scalatest_2.11.0-M3 Show documentation
Show all versions of scalatest_2.11.0-M3 Show documentation
ScalaTest is a free, open-source testing toolkit for Scala and Java
programmers.
/*
* Copyright 2001-2012 Artima, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.scalatest;
import java.lang.annotation.*;
/**
* Annotation to associate a wrapper suite with a non-Suite
class, so it can be run via ScalaTest.
*
*
* 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]) {
* // ...
* }
*
*
* @author Bill Venners
* @author Chua Chee Seng
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Inherited
public @interface WrapWith {
/**
* The wrapper suite.
*
* @return a wrapper suite class, which must have a constructor that takes a single Class
to run
*/
Class extends Suite> value();
}