class ScalaTestAntTask extends Task
An ant task to run ScalaTest. Instructions on how to specify various
options are below. See the main documentation for object Runner
class for a description
of what each of the options does.
To use the ScalaTest ant task, you must first define it in your ant file using taskdef
.
Here's an example:
<path id="scalatest.classpath"> <pathelement location="${lib}/scalatest.jar"/> <pathelement location="${lib}/scala-library.jar"/> <-- scala-actors.jar needed only for ScalaTest <= 1.9.1 on Scala >= 2.10.0 --> <pathelement location="${lib}/scala-actors.jar"/> </path> <target name="main" depends="dist"> <taskdef name="scalatest" classname="org.scalatest.tools.ScalaTestAntTask"> <classpath refid="scalatest.classpath"/> </taskdef> <scalatest ... </target>
Note that you only need the scala-actors.jar
if you are using ScalaTest version 1.9.1 or earlier
with Scala 2.10 or later.
Once defined, you use the task by specifying information in a scalatest
element:
<scalatest ...> ... </scalatest>
You can place key value pairs into the config map using nested <config>
elements,
like this:
<scalatest> <config name="dbname" value="testdb"/> <config name="server" value="192.168.1.188"/>
You can specify a runpath using either a runpath
attribute and/or nested
<runpath>
elements, using standard ant path notation:
<scalatest runpath="serviceuitest-1.1beta4.jar:myjini">
or
<scalatest> <runpath> <pathelement location="serviceuitest-1.1beta4.jar"/> <pathelement location="myjini"/> </runpath>
To add a URL to your runpath, use a <runpathurl>
element
(since ant paths don't support URLs):
<scalatest> <runpathurl url="http://foo.com/bar.jar"/>
You can specify reporters using nested <reporter>
elements, where the type
attribute must be one of the following:
-
graphic
-
file
-
memory
-
junitxml
-
html
-
stdout
-
stderr
-
reporterclass
Each may include a config
attribute to specify the reporter configuration.
Types file
, memory
, junitxml
, html
, and reporterclass
require additional attributes (the css attribute is optional for the html reporter):
<scalatest> <reporter type="stdout" config="FD"/> <reporter type="file" filename="test.out"/> <reporter type="memory" filename="target/memory.out"/> <reporter type="junitxml" directory="target"/> <reporter type="html" directory="target" css="src/main/html/mystylesheet.css"/> <reporter type="reporterclass" classname="my.ReporterClass"/>
Specify tags to include and/or exclude using <tagsToInclude>
and
<tagsToExclude>
elements, like this:
<scalatest> <tagsToInclude> CheckinTests FunctionalTests </tagsToInclude> <tagsToExclude> SlowTests NetworkTests </tagsToExclude>
Tags to include or exclude can also be specified using attributes tagsToInclude and tagsToExclude, with arguments specified as whitespace- delimited lists.
To specify suites to run, use either a suite
attribute or nested
<suite>
elements:
<scalatest suite="com.artima.serviceuitest.ServiceUITestkit">
or
<scalatest> <suite classname="com.artima.serviceuitest.ServiceUITestkit"/>
To specify tests to run, use nested <test>
elements with
either a 'name' or 'substring' attribute:
<scalatest> <test name="hello test"/> <test substring="hello"/>
To specify suites using members-only or wildcard package names, use
either the membersonly
or wildcard
attributes, or nested
<membersonly>
or <wildcard>
elements:
<scalatest membersonly="com.artima.serviceuitest">
or
<scalatest wildcard="com.artima.joker">
or
<scalatest> <membersonly package="com.artima.serviceuitest"/> <wildcard package="com.artima.joker"/>
Use attribute suffixes="[pipe-delimited list of suffixes]"
to specify that only classes whose names end in one of the specified suffixes
should be included in discovery searches for Suites to test. This can
be used to improve discovery time or to limit the scope of a test. E.g.:
<scalatest suffixes="Spec|Suite">
Use attribute testsfile="[file name]"
or nested
<testsfile> elements to specify files containing a list of
tests to be run. This is used to rerun failed/canceled tests
listed in files written by the memory reporter. E.g.:
<scalatest testsfile="target/memory.out">
or
<scalatest> <testsfile filename="target/memory.out"/>
Use attribute parallel="true"
to specify parallel execution of suites.
(If the parallel
attribute is left out or set to false, suites will be executed sequentially by one thread.)
When parallel
is true, you can include an optional sortSuites
attribute to request that events be sorted on-the-fly so that
events for the same suite are reported together, with a timeout, (e.g., sortSuites="true"
),
and an optional numthreads
attribute to specify the number
of threads to be created in thread pool (e.g., numthreads="10"
).
Use attribute haltonfailure="true"
to cause ant to fail the
build if there's a test failure.
Use attribute fork="true"
to cause ant to run the tests in
a separate process.
When fork
is true
, attribute maxmemory
may be used to specify
the maximum memory size that will be passed to the forked jvm. For example, the following setting
will cause "-Xmx1280M"
to be passed to the java command used to
run the tests.
<scalatest maxmemory="1280M">
When fork
is true, nested <jvmarg>
elements may be used
to pass additional arguments to the forked jvm.
For example, if you are running into 'PermGen space' memory errors,
you could add the following jvmarg
to bump up the JVM's MaxPermSize
value:
<jvmarg value="-XX:MaxPermSize=128m"/>
- Source
- ScalaTestAntTask.scala
- Alphabetic
- By Inheritance
- ScalaTestAntTask
- Task
- ProjectComponent
- Cloneable
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new ScalaTestAntTask()
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##(): Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def addConfiguredConfig(config: NameValuePair): Unit
Sets values from nested element
config
. - def addConfiguredJvmArg(arg: JvmArg): Unit
Sets value from nested element
jvmarg
. - def addConfiguredMembersOnly(membersonly: PackageElement): Unit
Sets value from nested element
membersonly
. - def addConfiguredReporter(reporter: ReporterElement): Unit
Sets value from nested element
reporter
. - def addConfiguredRunpath(runpath: Path): Unit
Sets value from nested element
runpath
. - def addConfiguredRunpathUrl(runpathurl: RunpathUrl): Unit
Sets value from nested element
runpathurl
. - def addConfiguredStyle(style: StyleElement): Unit
- def addConfiguredSuite(suite: SuiteElement): Unit
Sets value from nested element
suite
. - def addConfiguredTagsToExclude(tagsToExclude: TextElement): Unit
Sets value from nested element
tagsToExclude
. - def addConfiguredTagsToInclude(tagsToInclude: TextElement): Unit
Sets value from nested element
tagsToInclude
. - def addConfiguredTest(test: TestElement): Unit
Sets value from nested element
test
. - def addConfiguredTestNGSuites(testNGSuitePath: Path): Unit
Sets value from nested element
testngsuites
. - def addConfiguredTestsfile(testsfile: TestsfileElement): Unit
Sets value from nested element
testsfile
. - def addConfiguredWildcard(wildcard: PackageElement): Unit
Sets value from nested element
wildcard
. - final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- final def bindToOwner(arg0: Task): Unit
- Definition Classes
- Task
- def buildArgsList: List[String]
- def clone(): AnyRef
- Definition Classes
- ProjectComponent → AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException])
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def execute(): Unit
Executes the task.
Executes the task.
- Definition Classes
- ScalaTestAntTask → Task
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def getDescription(): String
- Definition Classes
- ProjectComponent
- def getLocation(): Location
- Definition Classes
- ProjectComponent
- def getOwningTarget(): Target
- Definition Classes
- Task
- def getProject(): Project
- Definition Classes
- ProjectComponent
- def getRuntimeConfigurableWrapper(): RuntimeConfigurable
- Definition Classes
- Task
- def getTaskName(): String
- Definition Classes
- Task
- def getTaskType(): String
- Definition Classes
- Task
- def getWrapper(): RuntimeConfigurable
- Attributes
- protected[ant]
- Definition Classes
- Task
- def handleErrorFlush(arg0: String): Unit
- Attributes
- protected[ant]
- Definition Classes
- Task
- def handleErrorOutput(arg0: String): Unit
- Attributes
- protected[ant]
- Definition Classes
- Task
- def handleFlush(arg0: String): Unit
- Attributes
- protected[ant]
- Definition Classes
- Task
- def handleInput(arg0: Array[Byte], arg1: Int, arg2: Int): Int
- Attributes
- protected[ant]
- Definition Classes
- Task
- Annotations
- @throws(classOf[java.io.IOException])
- def handleOutput(arg0: String): Unit
- Attributes
- protected[ant]
- Definition Classes
- Task
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def init(): Unit
- Definition Classes
- Task
- Annotations
- @throws(classOf[org.apache.tools.ant.BuildException])
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def isInvalid(): Boolean
- Attributes
- protected[ant]
- Definition Classes
- Task
- def log(arg0: String, arg1: Throwable, arg2: Int): Unit
- Definition Classes
- Task
- def log(arg0: Throwable, arg1: Int): Unit
- Definition Classes
- Task
- def log(arg0: String, arg1: Int): Unit
- Definition Classes
- Task → ProjectComponent
- def log(arg0: String): Unit
- Definition Classes
- Task → ProjectComponent
- def maybeConfigure(): Unit
- Definition Classes
- Task
- Annotations
- @throws(classOf[org.apache.tools.ant.BuildException])
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def perform(): Unit
- Definition Classes
- Task
- def reconfigure(): Unit
- Definition Classes
- Task
- def setDescription(arg0: String): Unit
- Definition Classes
- ProjectComponent
- def setFork(fork: Boolean): Unit
Sets value of the
fork
attribute. - def setHaltonfailure(haltonfailure: Boolean): Unit
Sets value of the
haltonfailure
attribute. - def setLocation(arg0: Location): Unit
- Definition Classes
- ProjectComponent
- def setMaxmemory(max: String): Unit
Sets value of the
maxmemory
attribute. - def setMembersonly(packageName: String): Unit
Sets value of
membersonly
attribute. - def setNumthreads(numthreads: Int): Unit
Sets value of the
numthreads
attribute. - def setOwningTarget(arg0: Target): Unit
- Definition Classes
- Task
- def setParallel(parallel: Boolean): Unit
Sets value of the
parallel
attribute. - def setProject(arg0: Project): Unit
- Definition Classes
- ProjectComponent
- def setRunpath(runpath: Path): Unit
Sets value of the
runpath
attribute. - def setRuntimeConfigurableWrapper(arg0: RuntimeConfigurable): Unit
- Definition Classes
- Task
- def setSortSuites(sortSuites: Boolean): Unit
Sets value of the
sortSuites
attribute. - def setSpanScaleFactor(spanScaleFactor: Double): Unit
Sets value of the
spanScaleFactor
attribute. - def setStyle(style: String): Unit
Sets value of
style
attribute. - def setSuffixes(suffixes: String): Unit
Sets value of the
suffixes
attribute. - def setSuite(suite: SuiteElement): Unit
Sets value of
suite
attribute. - def setTagsToExclude(tagsToExclude: String): Unit
Sets value of the
tagsToExclude
attribute. - def setTagsToInclude(tagsToInclude: String): Unit
Sets value of the
tagsToInclude
attribute. - def setTaskName(arg0: String): Unit
- Definition Classes
- Task
- def setTaskType(arg0: String): Unit
- Definition Classes
- Task
- def setTestNGSuites(testNGSuitePath: Path): Unit
Sets value of the
testngsuites
attribute. - def setTestsfile(testsfile: String): Unit
Sets value of the
testsfile
attribute. - def setWildcard(packageName: String): Unit
Sets value of
wildcard
attribute. - final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()