trait AllBrowsersPerTest extends TestSuiteMixin with WebBrowser with Eventually with IntegrationPatience
- Alphabetic
- By Inheritance
- AllBrowsersPerTest
- IntegrationPatience
- Eventually
- PatienceConfiguration
- AbstractPatienceConfiguration
- ScaledTimeSpans
- WebBrowser
- TestSuiteMixin
- SuiteMixin
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- final class ActiveElementTarget extends SwitchTarget[Element]
- Definition Classes
- WebBrowser
- final class AlertTarget extends SwitchTarget[Alert]
- Definition Classes
- WebBrowser
- final class Checkbox extends Element
- Definition Classes
- WebBrowser
- case class ClassNameQuery extends Query with Product with Serializable
- Definition Classes
- WebBrowser
- final class ColorField extends ValueElement
- Definition Classes
- WebBrowser
- class CookiesNoun extends AnyRef
- Definition Classes
- WebBrowser
- case class CssSelectorQuery extends Query with Product with Serializable
- Definition Classes
- WebBrowser
- final class DateField extends ValueElement
- Definition Classes
- WebBrowser
- final class DateTimeField extends ValueElement
- Definition Classes
- WebBrowser
- final class DateTimeLocalField extends ValueElement
- Definition Classes
- WebBrowser
- final class DefaultContentTarget extends SwitchTarget[WebDriver]
- Definition Classes
- WebBrowser
- case class Dimension extends Product with Serializable
- Definition Classes
- WebBrowser
- sealed trait Element extends AnyRef
- Definition Classes
- WebBrowser
- final class EmailField extends ValueElement
- Definition Classes
- WebBrowser
- final class FrameElementTarget extends SwitchTarget[WebDriver]
- Definition Classes
- WebBrowser
- final class FrameIndexTarget extends SwitchTarget[WebDriver]
- Definition Classes
- WebBrowser
- final class FrameNameOrIdTarget extends SwitchTarget[WebDriver]
- Definition Classes
- WebBrowser
- final class FrameWebElementTarget extends SwitchTarget[WebDriver]
- Definition Classes
- WebBrowser
- case class IdQuery extends Query with Product with Serializable
- Definition Classes
- WebBrowser
- case class LinkTextQuery extends Query with Product with Serializable
- Definition Classes
- WebBrowser
- final class MonthField extends ValueElement
- Definition Classes
- WebBrowser
- class MultiSel extends Element
- Definition Classes
- WebBrowser
- class MultiSelOptionSeq extends IndexedSeq[String]
- Definition Classes
- WebBrowser
- case class NameQuery extends Query with Product with Serializable
- Definition Classes
- WebBrowser
- final class NumberField extends ValueElement
- Definition Classes
- WebBrowser
- case class PartialLinkTextQuery extends Query with Product with Serializable
- Definition Classes
- WebBrowser
- final class PasswordField extends Element
- Definition Classes
- WebBrowser
- final case class PatienceConfig extends Product with Serializable
- Definition Classes
- AbstractPatienceConfiguration
- case class Point extends Product with Serializable
- Definition Classes
- WebBrowser
- sealed trait Query extends Product with Serializable
- Definition Classes
- WebBrowser
- final class RadioButton extends Element
- Definition Classes
- WebBrowser
- final class RadioButtonGroup extends AnyRef
- Definition Classes
- WebBrowser
- final class RangeField extends ValueElement
- Definition Classes
- WebBrowser
- final class SearchField extends ValueElement
- Definition Classes
- WebBrowser
- class SingleSel extends Element
- Definition Classes
- WebBrowser
- sealed abstract class SwitchTarget[T] extends AnyRef
- Definition Classes
- WebBrowser
- case class TagNameQuery extends Query with Product with Serializable
- Definition Classes
- WebBrowser
- final class TelField extends ValueElement
- Definition Classes
- WebBrowser
- final class TextArea extends Element
- Definition Classes
- WebBrowser
- final class TextField extends Element
- Definition Classes
- WebBrowser
- final class TimeField extends ValueElement
- Definition Classes
- WebBrowser
- final class UrlField extends ValueElement
- Definition Classes
- WebBrowser
- trait ValueElement extends Element
- Definition Classes
- WebBrowser
- final class WeekField extends ValueElement
- Definition Classes
- WebBrowser
- final class WindowTarget extends SwitchTarget[WebDriver]
- Definition Classes
- WebBrowser
- final class WrappedCookie extends AnyRef
- Definition Classes
- WebBrowser
- case class XPathQuery extends Query with Product with Serializable
- Definition Classes
- WebBrowser
Abstract Value Members
- abstract def expectedTestCount(filter: Filter): Int
- Definition Classes
- SuiteMixin
- abstract def nestedSuites: IndexedSeq[Suite]
- Definition Classes
- SuiteMixin
- abstract def rerunner: Option[String]
- Definition Classes
- SuiteMixin
- abstract def run(testName: Option[String], args: Args): Status
- Definition Classes
- SuiteMixin
- abstract def sharedTests(browser: BrowserInfo): Unit
Registers tests "shared" by multiple browsers.
Registers tests "shared" by multiple browsers.
Implement this method by placing tests you wish to run for multiple browsers. This method will be called during the initialization of this trait once for each browser whose
BrowserInfo
appears in theIndexedSeq
referenced from thebrowsers
field.Make sure you append
browser.name
to each test declared insharedTests
, to ensure they all have unique names. Here's an example:def sharedTests(browser: BrowserInfo) { "The blog app home page" must { "have the correct title " + browser.name in { go to (host + "index.html") pageTitle must be ("Awesome Blog") }
If you don't append
browser.name
to each test name you'll likely be rewarded with aDuplicateTestNameException
when you attempt to run the suite.- browser
the passed in
BrowserInfo
instance
- abstract def suiteId: String
- Definition Classes
- SuiteMixin
- abstract def suiteName: String
- Definition Classes
- SuiteMixin
- abstract def testDataFor(testName: String, theConfigMap: ConfigMap): TestData
- Definition Classes
- SuiteMixin
- abstract def testNames: Set[String]
- Definition Classes
- SuiteMixin
- abstract val styleName: String
- Definition Classes
- SuiteMixin
- Annotations
- @deprecated
- Deprecated
(Since version 3.1.0) The styleName lifecycle method has been deprecated and will be removed in a future version of ScalaTest with no replacement.
Concrete Value Members
- val activeElement: (AllBrowsersPerTest.this)#ActiveElementTarget
- Definition Classes
- WebBrowser
- def addCookie(name: String, value: String, path: String, expiry: Date, domain: String, secure: Boolean)(implicit driver: WebDriver): Unit
- Definition Classes
- WebBrowser
- val alertBox: (AllBrowsersPerTest.this)#AlertTarget
- Definition Classes
- WebBrowser
- def captureTo(fileName: String)(implicit driver: WebDriver): Unit
- Definition Classes
- WebBrowser
- def checkbox(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#Checkbox
- Definition Classes
- WebBrowser
- def checkbox(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#Checkbox
- Definition Classes
- WebBrowser
- def className(className: String): (AllBrowsersPerTest.this)#ClassNameQuery
- Definition Classes
- WebBrowser
- def clickOn(element: (AllBrowsersPerTest.this)#Element): Unit
- Definition Classes
- WebBrowser
- def clickOn(queryString: String)(implicit driver: WebDriver, pos: Position): Unit
- Definition Classes
- WebBrowser
- def clickOn(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver): Unit
- Definition Classes
- WebBrowser
- def clickOn(element: WebElement): Unit
- Definition Classes
- WebBrowser
- def close()(implicit driver: WebDriver): Unit
- Definition Classes
- WebBrowser
- def colorField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#ColorField
- Definition Classes
- WebBrowser
- def colorField(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#ColorField
- Definition Classes
- WebBrowser
- def cookie(name: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#WrappedCookie
- Definition Classes
- WebBrowser
- val cookies: (AllBrowsersPerTest.this)#CookiesNoun
- Definition Classes
- WebBrowser
- def cssSelector(cssSelector: String): (AllBrowsersPerTest.this)#CssSelectorQuery
- Definition Classes
- WebBrowser
- def currentUrl(implicit driver: WebDriver): String
- Definition Classes
- WebBrowser
- def dateField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#DateField
- Definition Classes
- WebBrowser
- def dateField(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#DateField
- Definition Classes
- WebBrowser
- def dateTimeField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#DateTimeField
- Definition Classes
- WebBrowser
- def dateTimeField(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#DateTimeField
- Definition Classes
- WebBrowser
- def dateTimeLocalField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#DateTimeLocalField
- Definition Classes
- WebBrowser
- def dateTimeLocalField(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#DateTimeLocalField
- Definition Classes
- WebBrowser
- val defaultContent: (AllBrowsersPerTest.this)#DefaultContentTarget
- Definition Classes
- WebBrowser
- def deleteAllCookies()(implicit driver: WebDriver, pos: Position): Unit
- Definition Classes
- WebBrowser
- def deleteCookie(name: String)(implicit driver: WebDriver, pos: Position): Unit
- Definition Classes
- WebBrowser
- def emailField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#EmailField
- Definition Classes
- WebBrowser
- def emailField(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#EmailField
- Definition Classes
- WebBrowser
- def enter(value: String)(implicit driver: WebDriver, pos: Position): Unit
- Definition Classes
- WebBrowser
- def eventually[T](fun: => T)(implicit config: (AllBrowsersPerTest.this)#PatienceConfig, retrying: Retrying[T], pos: Position): T
- Definition Classes
- Eventually
- def eventually[T](interval: Interval)(fun: => T)(implicit config: (AllBrowsersPerTest.this)#PatienceConfig, retrying: Retrying[T], pos: Position): T
- Definition Classes
- Eventually
- def eventually[T](timeout: Timeout)(fun: => T)(implicit config: (AllBrowsersPerTest.this)#PatienceConfig, retrying: Retrying[T], pos: Position): T
- Definition Classes
- Eventually
- def eventually[T](timeout: Timeout, interval: Interval)(fun: => T)(implicit retrying: Retrying[T], pos: Position): T
- Definition Classes
- Eventually
- def executeAsyncScript(script: String, args: AnyRef*)(implicit driver: WebDriver): AnyRef
- Definition Classes
- WebBrowser
- def executeScript[T](script: String, args: AnyRef*)(implicit driver: WebDriver): AnyRef
- Definition Classes
- WebBrowser
- def find(queryString: String)(implicit driver: WebDriver): Option[(AllBrowsersPerTest.this)#Element]
- Definition Classes
- WebBrowser
- def find(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver): Option[(AllBrowsersPerTest.this)#Element]
- Definition Classes
- WebBrowser
- def findAll(queryString: String)(implicit driver: WebDriver): Iterator[(AllBrowsersPerTest.this)#Element]
- Definition Classes
- WebBrowser
- def findAll(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver): Iterator[(AllBrowsersPerTest.this)#Element]
- Definition Classes
- WebBrowser
- def frame(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#FrameWebElementTarget
- Definition Classes
- WebBrowser
- def frame(element: (AllBrowsersPerTest.this)#Element): (AllBrowsersPerTest.this)#FrameElementTarget
- Definition Classes
- WebBrowser
- def frame(element: WebElement): (AllBrowsersPerTest.this)#FrameWebElementTarget
- Definition Classes
- WebBrowser
- def frame(nameOrId: String): (AllBrowsersPerTest.this)#FrameNameOrIdTarget
- Definition Classes
- WebBrowser
- def frame(index: Int): (AllBrowsersPerTest.this)#FrameIndexTarget
- Definition Classes
- WebBrowser
- def goBack()(implicit driver: WebDriver): Unit
- Definition Classes
- WebBrowser
- def goForward()(implicit driver: WebDriver): Unit
- Definition Classes
- WebBrowser
- def goTo(page: Page)(implicit driver: WebDriver): Unit
- Definition Classes
- WebBrowser
- def goTo(url: String)(implicit driver: WebDriver): Unit
- Definition Classes
- WebBrowser
- def id(elementId: String): (AllBrowsersPerTest.this)#IdQuery
- Definition Classes
- WebBrowser
- def implicitlyWait(timeout: Span)(implicit driver: WebDriver): Unit
- Definition Classes
- WebBrowser
- def interval(value: Span): Interval
- Definition Classes
- PatienceConfiguration
- def isScreenshotSupported(implicit driver: WebDriver): Boolean
- Definition Classes
- WebBrowser
- def linkText(linkText: String): (AllBrowsersPerTest.this)#LinkTextQuery
- Definition Classes
- WebBrowser
- def monthField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#MonthField
- Definition Classes
- WebBrowser
- def monthField(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#MonthField
- Definition Classes
- WebBrowser
- def multiSel(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#MultiSel
- Definition Classes
- WebBrowser
- def multiSel(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#MultiSel
- Definition Classes
- WebBrowser
- def name(elementName: String): (AllBrowsersPerTest.this)#NameQuery
- Definition Classes
- WebBrowser
- def numberField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#NumberField
- Definition Classes
- WebBrowser
- def numberField(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#NumberField
- Definition Classes
- WebBrowser
- def pageSource(implicit driver: WebDriver): String
- Definition Classes
- WebBrowser
- def pageTitle(implicit driver: WebDriver): String
- Definition Classes
- WebBrowser
- def partialLinkText(partialLinkText: String): (AllBrowsersPerTest.this)#PartialLinkTextQuery
- Definition Classes
- WebBrowser
- implicit val patienceConfig: (AllBrowsersPerTest.this)#PatienceConfig
- Definition Classes
- IntegrationPatience → AbstractPatienceConfiguration
- def pressKeys(value: String)(implicit driver: WebDriver): Unit
- Definition Classes
- WebBrowser
- def pwdField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#PasswordField
- Definition Classes
- WebBrowser
- def pwdField(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#PasswordField
- Definition Classes
- WebBrowser
- def quit()(implicit driver: WebDriver): Unit
- Definition Classes
- WebBrowser
- def radioButton(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#RadioButton
- Definition Classes
- WebBrowser
- def radioButton(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#RadioButton
- Definition Classes
- WebBrowser
- def radioButtonGroup(groupName: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#RadioButtonGroup
- Definition Classes
- WebBrowser
- def rangeField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#RangeField
- Definition Classes
- WebBrowser
- def rangeField(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#RangeField
- Definition Classes
- WebBrowser
- def reloadPage()(implicit driver: WebDriver): Unit
- Definition Classes
- WebBrowser
- final def scaled(span: Span): Span
- Definition Classes
- ScaledTimeSpans
- def searchField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#SearchField
- Definition Classes
- WebBrowser
- def searchField(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#SearchField
- Definition Classes
- WebBrowser
- def setCaptureDir(targetDirPath: String): Unit
- Definition Classes
- WebBrowser
- def setScriptTimeout(timeout: Span)(implicit driver: WebDriver): Unit
- Definition Classes
- WebBrowser
- def singleSel(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#SingleSel
- Definition Classes
- WebBrowser
- def singleSel(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#SingleSel
- Definition Classes
- WebBrowser
- def spanScaleFactor: Double
- Definition Classes
- ScaledTimeSpans
- def submit()(implicit driver: WebDriver, pos: Position): Unit
- Definition Classes
- WebBrowser
- def switchTo[T](target: (AllBrowsersPerTest.this)#SwitchTarget[T])(implicit driver: WebDriver, pos: Position): T
- Definition Classes
- WebBrowser
- def tagName(tagName: String): (AllBrowsersPerTest.this)#TagNameQuery
- Definition Classes
- WebBrowser
- def tags: Map[String, Set[String]]
Automatically tag browser tests with browser tags based on the test name: if a test ends in a browser name in square brackets, it will be tagged as using that browser.
Automatically tag browser tests with browser tags based on the test name: if a test ends in a browser name in square brackets, it will be tagged as using that browser. For example, if a test name ends in
[Firefox]
, it will be tagged withorg.scalatest.tags.FirefoxBrowser
. The browser tags will be merged with tags returned fromsuper.tags
, so no existing tags will be lost when the browser tags are added.- returns
super.tags
with additional browser tags added for any browser-specific tests
- Definition Classes
- AllBrowsersPerTest → SuiteMixin
- def telField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#TelField
- Definition Classes
- WebBrowser
- def telField(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#TelField
- Definition Classes
- WebBrowser
- def textArea(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#TextArea
- Definition Classes
- WebBrowser
- def textArea(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#TextArea
- Definition Classes
- WebBrowser
- def textField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#TextField
- Definition Classes
- WebBrowser
- def textField(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#TextField
- Definition Classes
- WebBrowser
- def timeField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#TimeField
- Definition Classes
- WebBrowser
- def timeField(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#TimeField
- Definition Classes
- WebBrowser
- def timeout(value: Span): Timeout
- Definition Classes
- PatienceConfiguration
- def urlField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#UrlField
- Definition Classes
- WebBrowser
- def urlField(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#UrlField
- Definition Classes
- WebBrowser
- implicit def webDriver: WebDriver
Implicit method to get the
WebDriver
for the current test. - def weekField(queryString: String)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#WeekField
- Definition Classes
- WebBrowser
- def weekField(query: (AllBrowsersPerTest.this)#Query)(implicit driver: WebDriver, pos: Position): (AllBrowsersPerTest.this)#WeekField
- Definition Classes
- WebBrowser
- def window(nameOrHandle: String): (AllBrowsersPerTest.this)#WindowTarget
- Definition Classes
- WebBrowser
- def windowHandle(implicit driver: WebDriver): String
- Definition Classes
- WebBrowser
- def windowHandles(implicit driver: WebDriver): Set[String]
- Definition Classes
- WebBrowser
- def withFixture(test: (AllBrowsersPerTest.this)#NoArgTest): Outcome
Inspects the current test name and if it ends with the name of one of the
BrowserInfo
s mentioned in thebrowsers
IndexedSeq
, creates a new web driver by invokingcreateWebDriver
on thatBrowserInfo
and, unless it is anUnavailableDriver
, installs it so it will be returned bywebDriver
during the test.Inspects the current test name and if it ends with the name of one of the
BrowserInfo
s mentioned in thebrowsers
IndexedSeq
, creates a new web driver by invokingcreateWebDriver
on thatBrowserInfo
and, unless it is anUnavailableDriver
, installs it so it will be returned bywebDriver
during the test. (If the driver is unavailable on the host platform, thecreateWebDriver
method will returnUnavailableDriver
, and thiswithFixture
implementation will cancel the test automatically.) If the current test name does not end in a browser name, thiswithFixture
method installsBrowserInfo.UnneededDriver
as the driver to be returned bywebDriver
during the test. If the test is not canceled because of an unavailable driver, thiswithFixture
method invokessuper.withFixture
and ensures that theWebDriver
is closed aftersuper.withFixture
returns.- test
the no-arg test function to run with a fixture
- returns
the
Outcome
of the test execution
- Definition Classes
- AllBrowsersPerTest → TestSuiteMixin
- def withScreenshot[T](fun: => T)(implicit driver: WebDriver): T
- Definition Classes
- WebBrowser
- def xpath(xpath: String): (AllBrowsersPerTest.this)#XPathQuery
- Definition Classes
- WebBrowser
Trait that uses a shared test approach to enable you to run the same tests on multiple browsers in a ScalaTest
Suite
, where a new browser is started before each test that needs a browser, and stopped after.Note: the difference between this trait and AllBrowsersPerSuite is that
AllBrowsersPerSuite
will allow you to write tests that rely on maintaining browser state between the tests. Thus,AllBrowsersPerSuite
is a good fit for integration tests in which each test builds on actions taken by the previous tests. This trait is good if your tests each need a brand new browser.This trait overrides
Suite
'swithFixture
lifecycle method to create a newWebDriver
instance before executing each test that needs a browser, closing it after the test completes, and overrides thetags
lifecycle method to tag the shared tests so you can filter them by browser type. This trait's self-type, ServerProvider, will ensure aTestServer
andApplication
are available to each test. The self-type will require that you mix in either GuiceOneServerPerSuite, GuiceOneServerPerTest, ConfiguredServer before you mix in this trait. Your choice among these threeServerProvider
s will determine the extent to which aTestServer
is shared by multiple tests.You'll need to place any tests that you want executed by multiple browsers in a
sharedTests
method. Because all tests in a ScalaTestSuite
must have unique names, you'll need to append the browser name (available from theBrowserInfo
passed tosharedTests
) to each test name:All tests registered via
sharedTests
will be registered for each desiredWebDriver
, as specified by thebrowsers
field. When running, any tests for browser drivers that are unavailable on the current platform will be canceled. All tests registered undersharedTests
will be tagged automatically if they end with a browser name in square brackets. For example, if a test name ends with[Firefox]
, it will be automatically tagged with"org.scalatest.tags.FirefoxBrowser"
. This will allow you can include or exclude the shared tests by browser type using ScalaTest's regular tagging feature.You can use tagging to include or exclude browsers that you sometimes want to test with, but not always. If you never want to test with a particular browser, you can prevent tests for it from being registered at all by overriding
browsers
and excluding itsBrowserInfo
in the returnedSeq
. For example, to disable registration of tests forHtmlUnit
, you'd write:Note that this trait can only be mixed into traits that register tests as functions, as the shared tests technique is not possible in style traits that declare tests as methods, such as
org.scalatest.Spec
. Attempting to do so will become a type error once we release ScalaTest 2.2.0.Here's how the output would look if you ran the above test class in sbt on a platform that did not support Selenium drivers for Internet Explorer or Chrome:
Because the shared tests will be tagged according to browser, you can include or exclude tests based on the browser they use. For example, here's how the output would look if you ran the above test class with sbt and ask to include only Firefox: