1
0
cucumber-js-demo/README.md

73 lines
1.9 KiB
Markdown

# Cucumber.js examples
This repository demonstrates features of Cucumber.js. Each directory contains
an independent npm-package with an example.
The packages have standard directory structure:
- Features are in the `feature/` directory and have `.feature` extension.
- Step definitions are JavaScript files in `feature/steps/`.
## Running the tests
1. Go to a directory
2. Install npm dependencies:
```sh
npm install
```
3. Run the tests:
```sh
npm test
```
## Available examples
### 1-5
The directories with the names starting with a number are parts of a single
step-by-step guide which introduces Cucumber.js. Each step of this guide
builds on the previous one and contains a few more lines of JavaScript code.
The target project is a small test suite for the JavaScript `+` operator.
### data-tables
When data tables are used, Cucumber.js provides different views of the data.
This directory contains one feature with four scenarios, each of which uses a
different way to read the given table. These tests cover all possibilities to
access the data in a data table.
See [Data tables](https://github.com/cucumber/cucumber-js/blob/master/docs/support_files/data_table_interface.md).
### async
Shows how to use promises and `async`/`await` when testing asynchronous code.
### ts
Defining steps in TypeScript.
### type-parser
Defines custom parameter types.
### reuse
Suggests a way to reuse step definitions.
### formatter
Uses non-default output formatter. See
[package.json](https://github.com/caraus-ecms/cucumber-js-demo/blob/master/formatter/package.json).
See also:
- Custom formatters: https://github.com/cucumber/cucumber-js/blob/master/docs/custom_formatters.md
- Built-in formatters: https://github.com/cucumber/cucumber-js/tree/master/src/formatter.
### assertion
This package contains some failing tests demonstrating object diffs provided by
node's native asserts, chai and jest.