In order to integrate your tests with Jenkins, first you need to have node.js (version >= 6.0.0) installed on the Jenkins machine or one of its slave machines.

Now, just follow these steps:

  1. Create a New item in Jenkins:

2. Enter job name (e.g. "Testim Tests"), and choose "Freestyle project" and click "OK":

3. Add execute step

Linux:

3.1. Add "Execute Shell" step:

3.2. Set the command with the appropriate parameters, as described in the CLI page. Here is the basic script template, containing the first part that makes sure you have the latest npm package, and the CLI command itself (no sudo required)

mkdir -p "${WORKSPACE}/.npm-packages"
prefix=${WORKSPACE}/.npm-packages
NPM_PACKAGES="${WORKSPACE}/.npm-packages"
export PATH="$PATH:$NPM_PACKAGES/bin"
export NODE_PATH="$NODE_PATH:$NPM_PACKAGES/lib/node_modules"
npm config set prefix ${WORKSPACE}/.npm-packages
npm install -g @testim/testim-cli

testim --label "<YOUR LABEL>" \
--token "<YOUR ACCESS TOKEN>" \
--project "<YOUR PROJECT ID>" \
--host "<SELENIUM GRID HOST, e.g. 127.0.0.1>" \
--port "<SELENIUM GRID PORT, e.g. 4444>" \
--report-file test-results/testim-tests-$BUILD_NUMBER-report.xml

Jenkins Execute Shell Command

Windows:

3.1 Add "Execute Windows batch command" step:

3.2 Set the command with the appropriate parameters, as described in the CLI page. Here is the basic script template, containing the first part that makes sure you have the latest npm package, and the CLI command itself:

npm install -g @testim/testim-cli

testim --label "<YOUR LABEL>" \
--token "<YOUR ACCESS TOKEN>" \
--project "<YOUR PROJECT ID>" \
--host "<SELENIUM GRID HOST, e.g. 127.0.0.1>" \
--port 4444 \
--report-file test-results/testim-tests-$BUILD_NUMBER-report.xml

Jenkins Execute Windows Batch Command

4. In order for Jenkins to store, analyze and show the results, we generate a standard JUnitXMLReporter XML file. For Jenkins to use the file you need to add a post-build action of type "Publish JUnit test result report":

6. Set the xml file value, according to the "report-file" parameter in section 4:

Did this answer your question?