Hi there,
I’m trying to test my Rest API with a Newman collection during my travis build.
Unfortunately, the build fails and I don’t understand Travis behavior: the collection is executed with the environment (as expected), but I don’t managed to get the expected result code of my requests…
Locally when I start my containers then execute the collection with Postman, everything works fine. I also tried to start my containers then execute the collection with Newman (basically the same command that is executed by travis) and it also runs perfectly fine.
Here is my travis file (I even tried to get the same versions of node, npm and newman that I have locally on my laptop):
sudo: required
dist: trusty
language: node_js
node_js:
- "12.9.0"
install:
- npm install newman
services:
- docker
addons:
sonarcloud:
organization: "REDACTED"
token:
secure: "REDACTED"
env:
DOCKER_COMPOSE_VERSION: 1.24.1
before_install:
- sudo rm /usr/local/bin/docker-compose
- curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose
- chmod +x docker-compose
- sudo mv docker-compose /usr/local/bin
before_script:
- docker-compose up -d --build
- node --version
- npm --version
- node_modules/.bin/newman --version
script:
- node_modules/.bin/newman run tests/collection.json -e tests/environment.json
- sonar-scanner
after_script:
- docker-compose down
And here is the result in the travis build:
` # failure detail
969
970 1. AssertionError Status code is 201
971 expected response to have status code 201 but got 200
972 at assertion:0 in test-script
973 inside "Scenario / Create User"
974
975 2. JSONError
976 Unexpected token 'C' at 1:1
977 Connection error: SQLSTATE[HY000] [2002] Connection refused<br />
978 ^
979 at test-script
980 inside "Scenario / Login User"
981
982 3. AssertionError Status code is 200
983 expected response to have status code 200 but got 401
984 at assertion:0 in test-script
985 inside "Scenario / ReadCurrent User"
986`
Locally the first request do return a 201 result code, why am I getting a 200 there (my code returns 201 or 4xx, never 200 for this request)??
The second request runs fine locally (200) and the third also returns a 200 result code. The 401 here is because I use a wrong JWT token due to the second (failed) request. But I have no idea why I got a Unexpected token 'C' at 1:1
in travis and not locally neither where the error come from ?
Thanks in advance