11

I'm running cypress tests headlessly and would like the console output to be a little more readable. Currently, I get a very messy output as seen below. According to the documentation it should be using the Mocha SPEC reporter layout. Can anyone tell me what I need to do to make this output readable?

I'm running ./node_modules/.bin/cypress run

Started video recording: ←[36mC:\code\website\ui\cypress\videos\vf7hm.mp4←[39m

←[90m  (←[4m←[1mTests Starting←[22m←[24m)←[39m

←[0m←[0m
←[0m  My First Test←[0m
  ←[32m  ΓêÜ←[0m←[90m Gets, types and asserts←[0m←[31m (18965ms)←[0m


←[92m ←[0m←[32m 1 passing←[0m←[90m (21s)←[0m


←[32m  (←[4m←[1mTests Finished←[22m←[24m)←[39m

←[37m  - Tests:           ←[39m←[32m1←[39m
←[37m  - Passes:          ←[39m←[32m1←[39m
←[37m  - Failures:        ←[39m←[32m0←[39m
←[37m  - Pending:         ←[39m←[32m0←[39m
←[37m  - Duration:        ←[39m←[32m20 seconds←[39m
←[37m  - Screenshots:     ←[39m←[32m0←[39m
←[37m  - Video Recorded:  ←[39m←[32mtrue←[39m
←[37m  - Cypress Version: ←[39m←[32m1.4.2←[39m


←[36m  (←[4m←[1mVideo←[22m←[24m)←[39m

  - Started processing:   ←[36mCompressing to 32 CRF←[39m
  - Finished processing:  ←[36mC:\code\website\ui\cypress\videos\vf7hm.mp4←[39m ←
[90m(1 second)←[39m


←[90m  (←[4m←[1mAll Done←[22m←[24m)←[39m
Jmh2013
  • 2,625
  • 2
  • 26
  • 42
  • Those are font colouring sequences and control characters. Try turning off colour output? – marekful Feb 06 '18 at 02:57
  • I don't appear to have color output on. Although, now that you mention this, is it possible that the coloring from the reporter is just not supported on windows? I'm running this in a windows7 command prompt. – Jmh2013 Feb 06 '18 at 16:24
  • 1
    Yes, it is. That's why if you can turn it off at the app level, that could fix this. – marekful Feb 07 '18 at 00:51
  • I wonder if you couldn't `grep` out the command sequences. They're pretty distinctive. `sed` actually. Might be powershell could do it too. – JL Peyret Feb 17 '18 at 16:20
  • It seems they've made it much worse with a later version adding what I assume are supposed to be table borders: `┌───â”` etc. – OrangeDog Jul 12 '21 at 15:02

5 Answers5

25

The messy output is because Cypress is using ANSI color escape characters to format the output, which your log viewer/console doesn't understand. You can disable the output of ANSI color control characters by setting the environment variable NO_COLOR:

NO_COLOR=1 cypress run

See https://docs.cypress.io/guides/continuous-integration/introduction#Colors

This was added in Cypress 3.0.0, released on 5/29/2018.

Michael Koch
  • 1,152
  • 11
  • 17
8

Could be two issues:


  1. Cypress is using ANSI colors, Jenkins isn't configured to convert this.

To fix: Install a plugin like this: https://plugins.jenkins.io/ansicolor/


  1. Encoding may not be UTF-8 (although it looks like yours is, others may not be)

To fix:

  • Navigate: Manage Jenkins => Configure System => Global Properties
  • Add env variable:
JAVA_TOOL_OPTIONS
-Dfile.encoding=UTF-8
Shain Lafazan
  • 323
  • 5
  • 6
  • I got the ansicolor plugin. It seems to work for some things, but it isnt picking up cypress characters. Is there some special config I have to do for this? – Travis Tubbs Apr 30 '21 at 14:51
3

I was getting same issue and also I was not able to add ANSI colors plugin to my Jenkins so I just added NO_COLOR=1 before test case run command like follows:

NO_COLOR=1 npx cypress run

Adding this code to my command solved my issue which is a simple way and you don't even need to add any other plugin as well.

0

From my knowledge, this is an issue specifically in Windows output in Cypress here: https://github.com/cypress-io/cypress/issues/1143

Jennifer Shehane
  • 6,645
  • 1
  • 30
  • 26
0

This worked for me as well in jenkins CI

NO_COLOR=1 cypress run

devops-admin
  • 1,447
  • 1
  • 15
  • 26