Use this template repository to get started with acceptance testing your REST/HTTP APIs using Serenity/JS and Cucumber.
Learn more:
To use this project, you'll need:
- Node.js, a Long-Term Support (LTS) release version 12 or later - download
- Java Runtime Environment (JRE) or a Java Development Kit (JDK) version 8 or later - download
Follow the installation instructions to help you verify your setup.
This repository is a GitHub template. You can use it to create new GitHub repositories or simply clone it to your computer.
Once you have the code on your computer, use your computer terminal to run the following command in the directory where you've cloned the project:
npm ci
Running npm ci
downloads the Node modules this project depends on, as well as the latest version of chromedriver
and the Serenity BDD CLI reporter jar.
If your network administrators require you to use proxy servers or an internal artifact registry (Artifactory, Nexus, etc.), your development environment might require some additional configuration.
The easiest way to do it is to create an .npmrc
file in your home directory:
proxy=http://user:[email protected]:8080/
https-proxy=http://user:[email protected]:8080/
strict-ssl=false
registry=https://artifactory.mycompany.com/artifactory/
If you encounter issues downloading the Serenity BDD CLI jar, please follow the detailed instructions in the Serenity/JS Handbook.
Similar instructions are available for the chromedriver
module.
The project provides several NPM scripts defined in package.json
:
npm run lint # runs code linter
npm run lint:fix # attempts to automatically fix linting issues
npm run clean # removes reports from any previous test run
npm test # executes the example test suite
# and generates the report under ./target/site/serenity
To execute only those scenarios which names match a given pattern, run:
npx cucumber-js --name="Multiple expressions"
Note that this technique works with partial matches, i.e. specifying --name="expressions"
would match all the scenarios in the example .feature
file.
You can limit the number of scenarios to execute using Cucumber tags and tag expressions, for example:
npx cucumber-js --tags="@smoke-test and @fast"
You can also run a single scenario by specifying its exact file:line
location, for example
npx cucumber-js features/mathjs-api/expressions.feature:12
Do you find Serenity/JS useful? Give it a star! ★
Found a bug? Need a feature? Raise an issue or submit a pull request.
Have feedback? Let me know on twitter: @JanMolak
If you'd like to chat with fellow users of Serenity/JS, join us on Gitter Chat.
And if Serenity/JS has made your life a little bit easier, please consider sponsoring its ongoing development 🙇