-1

What is the best CI(Continuous Integration) tool for behat and can you provide the steps to configure it. Because i want to run all my features of behat when any one push in git. i.e when something get push in my git A/C the CI will run all my features and the result should be send via email like jenkins.

Amit Dinda
  • 66
  • 8

1 Answers1

1

You shouldn't run automation on every push because if you will have a suite that lasts more than the interval between 2 pushes then the results from one run can affect the results from the other.

I think you can use any CI tool that dev's are using.

If you are using Jenkins then you can create a regular job with:

Project name - any name Description - description of the job, like running automation suite
Discard old builds - Log Rotation ; max builds to keep at least 10, depending on how much you run and if you get the email with results + raport
This build is parameterized - add parameters like: GIT_BRANCH for the branch of the git, SUITE_TYPE if you want to configure multiple suites like regression, smoke and other parameters
Execute concurrent builds if necessary - check it if you want to run in parallel from the same job on multiple environments
Source Code Management - select git and add repository url an credentials; Branches to build ${GIT_BRANCH}

Build section
Execute shell - add commands to change directory to your behat directory if needed, command to install behat, command to run behat

# change directory if needed
cd workspace/automationDirectory
# download composer.phar if needed, depending on how you are installing behat
curl -sS https://getcomposer.org/installer | php
# install behat
php composer.phar install --prefer-dist
# set profile if needed
BEHAT_PROFILE = ""
# add logic to create filters
if [ "$SUITE_TYPE" = "regression" ]; then
BEHAT_TAGS="@regression"

elif [ "$SUITE_TYPE" = "smoke" ]; then
BEHAT_TAGS="@smoke"

else
BEHAT_TAGS="@fastRun"
fi

bin/behat --profile="$BEHAT_PROFILE" --tags="$BEHAT_TAGS"

If yo need to use in CI you should find some online documentation to triger this build from another. For email you could use a Jenkins plugin.
Anyway this question is to broad, you should try small parts and ask specific questions.

lauda
  • 4,153
  • 2
  • 14
  • 28