Skip to content

Commit

Permalink
Misc cucumber tweaks (#239)
Browse files Browse the repository at this point in the history
no refs

Misc cucumber tweaks:

- Use `docker compose run` instead of `docker compose up` to get a `TTY` for
live updating of progress + colorization of output. Also removes the annoying
service name prefix from the output
- Use `progress` as the formatter so we can see that things are happening
- Use JS based config instead of cmd line args for cucumber.js
- Added `failFast` to the config so we can stop on the first failure
  • Loading branch information
mike182uk authored Dec 19, 2024
1 parent c4e871f commit 46912ed
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 11 deletions.
20 changes: 11 additions & 9 deletions cucumber.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
let cmd = `--format-options '{"snippetInterface": "synchronous"}'`;
// https://github.com/cucumber/cucumber-js/blob/main/docs/configuration.md

if (process.env.TAGS) {
// @see https://cucumber.io/docs/cucumber/api/?lang=javascript#tags
cmd += ` --tags '${process.env.TAGS}'`;
}

console.log(cmd);

export default cmd;
export default {
backtrace: true,
format: ['progress'],
formatOptions: {
snippetInterface: 'synchronous',
},
failFast: true,
// @see https://github.com/cucumber/cucumber-js/blob/main/docs/filtering.md#tags
tags: process.env.TAGS,
};
2 changes: 1 addition & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ services:
- MYSQL_DATABASE=activitypub
- NODE_ENV=testing
- TAGS
command: yarn run cucumber-js
command: /opt/activitypub/node_modules/.bin/cucumber-js
depends_on:
fake-ghost-activitypub:
condition: service_started
Expand Down
5 changes: 4 additions & 1 deletion docker/cucumber-tests
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
#!/usr/bin/env bash

# Export the input provided to the script as the TAGS environment variable. This
# will then be used by the cucumber-tests container to run only the scenarios
# matching the provided tags expression
export TAGS=$1

docker compose run --rm migrate-testing up && docker compose up cucumber-tests --exit-code-from cucumber-tests
docker compose run --rm migrate-testing up && docker compose run --rm cucumber-tests

0 comments on commit 46912ed

Please # to comment.