Angular tests working in Agent terminal but failing during actual build

Hi everyone, thank you for your time. 

 

I am experiencing a weird issue when running Angular tests with Karma in TeamCity. I am able to run the tests in the agent's terminal using ng test --watch=false --browsers=ChromeHeadless, but when I run the same exact command in the build steps, it fails with the following error:
 

13:00:03     23 07 2025 21:00:04.997:INFO [karma-server]: Karma v6.4.4 server started at http://localhost:9876/
13:00:04     23 07 2025 21:00:04.998:INFO [launcher]: Launching browsers ChromeHeadlessNoSandbox with concurrency unlimited
13:00:05     23 07 2025 21:00:05.009:INFO [launcher]: Starting browser ChromeHeadless
13:00:05     23 07 2025 21:00:05.265:ERROR [launcher]: Cannot start ChromeHeadless
13:00:05     
13:00:05     23 07 2025 21:00:05.265:ERROR [launcher]: ChromeHeadless stdout:
13:00:05     23 07 2025 21:00:05.265:ERROR [launcher]: ChromeHeadless stderr:
13:00:05     23 07 2025 21:00:05.273:INFO [launcher]: Trying to start ChromeHeadless again (1/2).
13:00:05     23 07 2025 21:00:05.516:ERROR [launcher]: Cannot start ChromeHeadless
13:00:05     
13:00:05     23 07 2025 21:00:05.516:ERROR [launcher]: ChromeHeadless stdout:
13:00:05     23 07 2025 21:00:05.516:ERROR [launcher]: ChromeHeadless stderr:
13:00:05     23 07 2025 21:00:05.523:INFO [launcher]: Trying to start ChromeHeadless again (2/2).
13:00:05     23 07 2025 21:00:05.770:ERROR [launcher]: Cannot start ChromeHeadless
13:00:05     
13:00:05     23 07 2025 21:00:05.771:ERROR [launcher]: ChromeHeadless stdout:
13:00:05     23 07 2025 21:00:05.771:ERROR [launcher]: ChromeHeadless stderr:
13:00:05     23 07 2025 21:00:05.777:ERROR [launcher]: ChromeHeadless failed 2 times (cannot start). Giving up. 

The environment between the terminal and actual build seem the same to me. I am not sure what's going on. For some reason the build cannot start ChromeHeadless, but the terminal can. Any ideas?

 I have using xvfb with the following command: xvfb-run -a ng test --watch=false --browsers=ChromeHeadless. This also works in the terminal but not during the build. 

 

I tried configuring my karma file like so but still no luck:

customLaunchers: {
  ChromeHeadlessNoSandbox: {
    base: 'ChromeHeadless',
    binary: '/usr/bin/google-chrome', // Use the actual path from debug output
    flags: [
      '--no-sandbox',
      '--disable-gpu',
      '--disable-dev-shm-usage',
      '--disable-setuid-sandbox'
    ]
  }
},

Thank you for any help!

0
1 comment

The issue was a difference in temp directories in the environment. The build was using the temp directories set in buildAgent.properties and the terminal was using the default /tmp

0

Please sign in to leave a comment.