ScalaWebTest is a library for writing ScalaTest/Selenium based integration tests for websites. It helps you with your basic setup and provides a new and very efficient approach to testing.
In manufacturing, it is common to use gauges (also called checking gauges or testing gauges) to verify whether a workpiece meets predefined criteria and tolerances. ScalaWebTest transfers this concept to the world of web integration testing. You can define a gauge in HTML, and use it to verify your web application. This greatly improves the readability, simplicity of your integration tests.
Read the full documentation on our website https://www.scalawebtest.org
Get familiar with the sbt build tool because this is used to manage the project.
$ sbt compile test package
Before running the integration tests, you will need to configure WEBDRIVER_CHROME_DRIVER
environment variable. To do so, run the following command:
$ export WEBDRIVER_CHROME_DRIVER="$(which chromedriver)"
Then run the tests using the command below:
$ sbt inttest
This will start a Jetty server, executes the integration tests and stops the server again.
If you would like to run the Jetty server and in parallel work on integration tests, and some code changes, you can do the following:
# Enter the sbt console first, enter 'sbt' in root folder
$ sbt
# Start Jetty server
sbt> jetty:start
# Or if you would like that sbt automatically restarts Jetty after code changes then do:
sbt> ~jetty:start
# Open separate command window and enter the sbt console agains
# Run a single integration tests
sbt> it:testOnly org.scalawebtest.integration.gauge.ContainsSpec
Create the file ~/.sbt/1.0/plugins/gpg.sbt
and add the following line addSbtPlugin("com.jsuereth" % "sbt-pgp" % "2.0.1")
Create the file ~/sbt/1.0/global.sbt
and add the following line Global / useGpg := false
or install gpg according to the sbt-pgp documentation.
Copy the private key (Sonatype PGP Private and Public Key from our company password store), to ~/.sbt/gpg/secring.asc
Create the file ~/.sbt/1.0/sonatype.sbt
and add the following content, then replace username and password with your personal oss.sonatype credentials
credentials += Credentials("Sonatype Nexus Repository Manager",
"oss.sonatype.org",
"<your username>",
"<your password>")
The release process of ScalaWebTest is currently done manually. The process is as follows:
build.sbt
to that which is to be released (e.g. from 0.0.1-SNAPSHOT
to 1.0.0
)sbt
- enters the sbt interactive mode+ clean
- deletes all generated files (target)+ test
- compiles and tests the main sources+ doc
- generate scaladocmimaReportBinaryIssues
- execute the Migration Manager to verify binary compatibilityinttest
- compile and run the integration tests+ publishSigned
- publishes all packages, sources and poms exit
- exits the sbt interactive modeRelease 1.0.0
)git tag -a x.x.x -m "x.x.x"
build.sbt
to the snapshot version (e.g. from 1.0.0
to 1.0.0-SNAPSHOT
) and update the documentation if neededBump version to 1.0.0-SNAPSHOT
)The website's parts are found in the docs
-folder of this project.
It is built using jekyll
, please see the serve_local-files
for local serving. Or use the following command:
bundle exec jekyll build
The website is deployed through Netlify. It's deployment configurations are found in netlify.tom
.
Please find the login in our company password store.