Chrome not captured when using karma with Docker - node.js

I am trying to run some karma tests using chrome in a Docker container. My Dockerfile looks like:
FROM node:6-alpine
RUN apk update \
&& apk add --update alpine-sdk \
&& apk add chromium \
&& npm install -g #angular/cli#1.0.0 \
&& ng set --global packageManager=yarn \
&& apk del alpine-sdk \
&& rm -rf /tmp/* /var/cache/apk/* *.tar.gz ~/.npm \
&& npm cache clear \
&& sed -i -e "s/bin\/ash/bin\/sh/" /etc/passwd
ENV CHROME_BIN=/usr/local/bin/my-chrome-build
When I run ng test in this container (having mounted a project which I know works), I get:
$ ng test -sr && yarn run test:server
04 04 2017 10:32:27.896:INFO [karma]: Karma v1.5.0 server started at http://0.0.0.0:9876/
04 04 2017 10:32:27.915:INFO [launcher]: Launching browser Chrome with unlimited concurrency
04 04 2017 10:32:27.985:INFO [launcher]: Starting browser Chrome
04 04 2017 10:33:28.047:WARN [launcher]: Chrome have not captured in 60000 ms, killing.
04 04 2017 10:33:30.053:WARN [launcher]: Chrome was not killed in 2000 ms, sending SIGKILL.
04 04 2017 10:33:32.056:WARN [launcher]: Chrome was not killed by SIGKILL in 2000 ms, continuing.
error Command failed with exit code 1.
I don't really know how to debug this, any ideas what might be wrong or how I can find out more?

I'm using Chrome headless unstable in a Docker container with the following Karma browser config (excerpt):
...
browsers: ['Chrome_in_Docker'],
customLaunchers: {
Chrome_in_Docker: {
base: 'ChromeHeadless',
flags: [
'--disable-web-security',
'--no-sandbox',
'--disable-setuid-sandbox',
'--disable-dev-shm-usage',
'--remote-debugging-port=9223',
'--headless',
'--disable-gpu'
]
}
},
...

Related

Karma. SyntaxError: Expected an identifier but found ... instead - my version

I've read Karma. SyntaxError: Expected an identifier but found ... instead, and my issue seems the same. But please humor me, it's weirder in my case.
I have 2 Jenkins jobs that runs grunt karma on the same directory, but on 2 different branches, and the only diffs between the two branches is a *.js file that is in a different directory that I'm running grunt karma on. IOW, for all practical purposes on the directory I'm testing, the 2 branches are identical.
On my sandbox job that checks out my master branch, I can issue grunt karma and get
$ grunt karma
Running "karma:unit" (karma) task
08 01 2023 21:12:16.404:INFO [karma]: Karma v1.7.1 server started at http://0.0.0.0:9876/
08 01 2023 21:12:16.406:INFO [launcher]: Launching browser PhantomJS with unlimited concurrency
08 01 2023 21:12:16.412:INFO [launcher]: Starting browser PhantomJS
08 01 2023 21:12:16.713:INFO [PhantomJS 2.1.1 (Linux 0.0.0)]: Connected on socket Ceegz0CmpJmQjl0uAAAA with id 84751163
PhantomJS 2.1.1 (Linux 0.0.0): Executed 51 of 51 SUCCESS (0.191 secs / 0.2 secs)
Done, without errors.
But on a job that runs grunt karma on a release/* branch I get
$ grunt karma
Running "karma:unit" (karma) task
08 01 2023 21:34:55.619:INFO [karma]: Karma v1.7.1 server started at http://0.0.0.0:9876/
08 01 2023 21:34:55.621:INFO [launcher]: Launching browser PhantomJS with unlimited concurrency
08 01 2023 21:34:55.625:INFO [launcher]: Starting browser PhantomJS
08 01 2023 21:34:55.937:INFO [PhantomJS 2.1.1 (Linux 0.0.0)]: Connected on socket PeYT79bHxmpbsAj2AAAA with id 65885438
PhantomJS 2.1.1 (Linux 0.0.0) ERROR
SyntaxError: Expected an identifier but found 'jasmineRequire' instead
at src/desktop/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:25
PhantomJS 2.1.1 (Linux 0.0.0) ERROR
ReferenceError: Can't find variable: jasmineRequire
at src/desktop/node_modules/karma-jasmine/lib/boot.js:14
PhantomJS 2.1.1 (Linux 0.0.0) ERROR
ReferenceError: Can't find variable: jasmine
at src/desktop/node_modules/karma-jasmine/lib/adapter.js:405
Warning: Task "karma:unit" failed. Use --force to continue.
On BOTH branches, this is the line in above file
var getJasmineRequireObj = (function(jasmineGlobal) {
let jasmineRequire; // This is the offending line
Here's my karma.conf.js file, also the same on BOTH branches
// karma.conf.js
module.exports = function(config) {
config.set({
frameworks: ['jasmine'],
singleRun: true,
browsers: ['PhantomJS'],
browserConsoleLogOptions: {
terminal: true,
level: ""
},
files: [
'src/common/lib/jquery/jquery-1.9.0.js',
'src/common/lib/jquery/jquery.cookie.js',
'src/common/lib/angular/1.8.2/angular.min.js',
'src/common/lib/angular/1.8.2/*.js',
'src/common/lib/angular-scrollable-table/angular-scrollable-table.js',
'src/desktop/lib/bootstrap/bootstrap.js',
'src/desktop/lib/bootstrap/angular-strap.js',
'src/desktop/node_modules/angular-mocks/angular-mocks.js',
'src/common/lib/hicharts/highcharts.js',
'src/common/lib/localization/sprintf.js',
'src/common/lib/localization/localization.js',
'src/common/js/directives/ZiftDirectives.js',
'src/common/js/modules/*.js',
'src/common/js/controllers/agencyorder/*.js',
'src/common/js/controllers/CampaignActivateController.js',
'src/common/js/services/agencyorder/agencyOrderAssetOrderService.js',
'src/common/js/services/agencyorder/quoteAgencySelectService.js',
'src/common/js/constants.js',
'src/common/js/services.js',
'src/common/js/downloads/*.js',
'src/common/js/services/export/ExportService.js',
'src/common/js/services/leads/*.js',
'test/**/*.js'
]
});
I delete the workspace when I run the jobs. What is my issue? TIA!

Azure pipelines can't find test results file

I realize that a similar question has been asked here. However, not only has no answer been accepted, but the answer isn't really an answer.
I have a very simple build pipeline that builds a nx workspace and tests it. The issue that I am seeing is that when I run the test portion of the pipeline, test results files are created but the publish test results task can't find the files.
My karma.conf.js is as follows
// Karma configuration file, see link for more information
// https://karma-runner.github.io/1.0/config/configuration-file.html
const { join } = require("path");
const { constants } = require("karma");
module.exports = () => {
return {
basePath: "",
frameworks: ["jasmine", "#angular-devkit/build-angular"],
plugins: [
require("karma-jasmine"),
require("karma-chrome-launcher"),
require("karma-jasmine-html-reporter"),
require("#angular-devkit/build-angular/plugins/karma"),
require("karma-coverage"),
require("karma-mocha-reporter"),
require("karma-nunit2-reporter"),
require("karma-spec-reporter"),
],
client: {
clearContext: false,
jasmine: {
random: false,
},
},
jasmineHtmlReporter: {
suppressAll: true,
},
reporters: ["mocha", "coverage", "spec", "nunit"],
mochaReporter: {
output: "minimal",
ignoreSkipped: true,
maxLogLines: 5,
},
nunitReporter: {
outputFile: "src\\e2e\\test-results\\TEST-karma.xml",
},
reportSlowerThan: 500,
port: 9876,
colors: true,
logLevel: constants.LOG_INFO,
autoWatch: true,
browsers: ["Chrome"],
singleRun: false,
restartOnFileChange: true,
customLaunchers: {
chromeDebugging: {
base: "Chrome",
flags: ["--remote-debugging-port=9333"],
},
headlessChrome: {
base: "ChromeHeadless",
flags: [
"--no-sandbox",
"--no-proxy-server",
"--disable-web-security",
"--disable-gpu",
"--js-flags=-max-old-space-size=8196",
],
},
},
preprocessors: {
"src/**/*.js": ["coverage"],
},
};
};
And the relevant portions of the pipeline configuration are:
- script: npx nx affected --target=test --parallel --max-parallel=2 --no-watch --browsers headlessChrome --reporters nunit
displayName: Test Affected Projects
- script: cd apps/portfolio/src/e2e/test-results && ls
condition: succeededOrFailed()
- task: PublishTestResults#2
condition: succeededOrFailed()
inputs:
testResultsFormat: NUnit
searchFolder: "$(system.defaultWorkingDirectory)/**/src/e2e/test-results"
testResultsFiles: "TEST-karma.xml"
mergeTestResults: true
Overall the pipeline succeeds but the output is not what I was expecting.
2022-03-11T15:06:33.8808764Z ##[section]Starting: Test Affected Projects
2022-03-11T15:06:33.8816403Z ==============================================================================
2022-03-11T15:06:33.8816705Z Task : Command line
2022-03-11T15:06:33.8816986Z Description : Run a command line script using Bash on Linux and macOS and cmd.exe on Windows
2022-03-11T15:06:33.8817255Z Version : 2.200.2
2022-03-11T15:06:33.8817446Z Author : Microsoft Corporation
2022-03-11T15:06:33.8817875Z Help : https://learn.microsoft.com/azure/devops/pipelines/tasks/utility/command-line
2022-03-11T15:06:33.8818232Z ==============================================================================
2022-03-11T15:06:34.0062774Z Generating script.
2022-03-11T15:06:34.0070315Z Script contents:
2022-03-11T15:06:34.0071200Z npx nx affected --target=test --parallel --max-parallel=2 --no-watch --browsers headlessChrome --reporters nunit
2022-03-11T15:06:34.0071854Z ========================== Starting Command Output ===========================
2022-03-11T15:06:34.0090870Z [command]/usr/bin/bash --noprofile --norc /home/vsts/work/_temp/f1d1558c-ec90-4297-a8d7-21c5560acce3.sh
2022-03-11T15:06:34.8996294Z
2022-03-11T15:06:34.9036218Z > NX No explicit --base argument provided, but found environment variable NX_BASE so using its value as the affected base: $(git rev-parse origin/main)
2022-03-11T15:06:34.9037131Z
2022-03-11T15:06:34.9037511Z
2022-03-11T15:06:34.9038616Z > NX No explicit --head argument provided, but found environment variable NX_HEAD so using its value as the affected head: 7e6371ebd645b9aea7aba9dc5dcef876334321a2
2022-03-11T15:06:34.9039279Z
2022-03-11T15:06:50.7772679Z
2022-03-11T15:06:50.7774790Z > nx run portfolio:test --no-watch --browsers=headlessChrome --reporters=nunit
2022-03-11T15:06:50.7775838Z - Generating browser application bundles (phase: setup)...
2022-03-11T15:06:50.7777536Z [32m10 03 2022 21:26:42.906:INFO [preprocessor.coverage]: [39mcoverage not included in reporters [ 'nunit' ]
2022-03-11T15:06:50.7778372Z ✔ Browser application bundle generation complete.
2022-03-11T15:06:50.7779633Z [32m10 03 2022 21:26:50.156:INFO [karma-server]: [39mKarma v6.3.17 server started at http://localhost:9876/
2022-03-11T15:06:50.7780634Z [32m10 03 2022 21:26:50.157:INFO [launcher]: [39mLaunching browsers headlessChrome with concurrency unlimited
2022-03-11T15:06:50.7781477Z [32m10 03 2022 21:26:50.165:INFO [launcher]: [39mStarting browser ChromeHeadless
2022-03-11T15:06:50.7782434Z [32m10 03 2022 21:26:54.147:INFO [Chrome Headless 99.0.4844.51 (Linux x86_64)]: [39mConnected on socket XMnFRYM5I2QyT8ZWAAAB with id 75945850
2022-03-11T15:06:50.7782830Z
2022-03-11T15:06:50.7785244Z
2022-03-11T15:06:50.7785379Z
2022-03-11T15:06:50.8883421Z
2022-03-11T15:06:50.8885915Z > nx run home:test --no-watch --browsers=headlessChrome --reporters=nunit
2022-03-11T15:06:50.8886904Z - Generating browser application bundles (phase: setup)...
2022-03-11T15:06:50.8888008Z [32m10 03 2022 21:21:54.923:INFO [preprocessor.coverage]: [39mcoverage not included in reporters [ 'nunit' ]
2022-03-11T15:06:50.8888994Z ✔ Browser application bundle generation complete.
2022-03-11T15:06:50.8890710Z [32m10 03 2022 21:22:08.464:INFO [karma-server]: [39mKarma v6.3.17 server started at http://localhost:9876/
2022-03-11T15:06:50.8891823Z [32m10 03 2022 21:22:08.465:INFO [launcher]: [39mLaunching browsers headlessChrome with concurrency unlimited
2022-03-11T15:06:50.8892684Z [32m10 03 2022 21:22:08.469:INFO [launcher]: [39mStarting browser ChromeHeadless
2022-03-11T15:06:50.8893639Z [32m10 03 2022 21:22:19.091:INFO [Chrome Headless 99.0.4844.51 (Linux x86_64)]: [39mConnected on socket kf6bzFTypLCiZrEeAAAB with id 63557301
2022-03-11T15:06:50.8894051Z
2022-03-11T15:06:50.8896419Z
2022-03-11T15:06:50.8896796Z
2022-03-11T15:06:51.0715055Z
2022-03-11T15:06:51.0716746Z > nx run core-ui:test --no-watch --browsers=headlessChrome --reporters=nunit
2022-03-11T15:06:51.0717452Z - Generating browser application bundles (phase: setup)...
2022-03-11T15:06:51.0718458Z [32m10 03 2022 21:21:54.930:INFO [preprocessor.coverage]: [39mcoverage not included in reporters [ 'nunit' ]
2022-03-11T15:06:51.0719083Z ✔ Browser application bundle generation complete.
2022-03-11T15:06:51.0719931Z [32m10 03 2022 21:22:08.422:INFO [karma-server]: [39mKarma v6.3.17 server started at http://localhost:9877/
2022-03-11T15:06:51.0720750Z [32m10 03 2022 21:22:08.423:INFO [launcher]: [39mLaunching browsers headlessChrome with concurrency unlimited
2022-03-11T15:06:51.0721448Z [32m10 03 2022 21:22:08.427:INFO [launcher]: [39mStarting browser ChromeHeadless
2022-03-11T15:06:51.0722283Z [32m10 03 2022 21:22:19.091:INFO [Chrome Headless 99.0.4844.51 (Linux x86_64)]: [39mConnected on socket fE5V6U9cgdViTj6nAAAB with id 33194964
2022-03-11T15:06:51.0722643Z
2022-03-11T15:06:51.0722824Z
2022-03-11T15:06:51.0722903Z
2022-03-11T15:06:51.0722994Z
2022-03-11T15:06:51.0723244Z > NX Successfully completed running the command.
2022-03-11T15:06:51.0723403Z
2022-03-11T15:06:51.0723725Z See run details at https://nx.app/runs/8yGag21GbWW
2022-03-11T15:06:51.0723889Z
2022-03-11T15:06:51.0902196Z ##[section]Finishing: Test Affected Projects
2022-03-11T15:06:51.0928478Z ##[section]Starting: CmdLine
2022-03-11T15:06:51.0936040Z ==============================================================================
2022-03-11T15:06:51.0936338Z Task : Command line
2022-03-11T15:06:51.0936623Z Description : Run a command line script using Bash on Linux and macOS and cmd.exe on Windows
2022-03-11T15:06:51.0936913Z Version : 2.200.2
2022-03-11T15:06:51.0937102Z Author : Microsoft Corporation
2022-03-11T15:06:51.0937396Z Help : https://learn.microsoft.com/azure/devops/pipelines/tasks/utility/command-line
2022-03-11T15:06:51.0937799Z ==============================================================================
2022-03-11T15:06:51.2211419Z Generating script.
2022-03-11T15:06:51.2219976Z Script contents:
2022-03-11T15:06:51.2221506Z cd apps/portfolio/src/e2e/test-results && ls
2022-03-11T15:06:51.2221892Z ========================== Starting Command Output ===========================
2022-03-11T15:06:51.2241765Z [command]/usr/bin/bash --noprofile --norc /home/vsts/work/_temp/5e4cb0b9-23dd-43cd-952b-d4c9b74f3483.sh
2022-03-11T15:06:51.2304790Z TEST-karma.xml
2022-03-11T15:06:51.2362372Z ##[section]Finishing: CmdLine
2022-03-11T15:06:51.2382031Z ##[section]Starting: PublishTestResults
2022-03-11T15:06:51.2387550Z ==============================================================================
2022-03-11T15:06:51.2387836Z Task : Publish Test Results
2022-03-11T15:06:51.2388062Z Description : Publish test results to Azure Pipelines
2022-03-11T15:06:51.2388276Z Version : 2.198.0
2022-03-11T15:06:51.2388503Z Author : Microsoft Corporation
2022-03-11T15:06:51.2388799Z Help : https://learn.microsoft.com/azure/devops/pipelines/tasks/test/publish-test-results
2022-03-11T15:06:51.2389162Z ==============================================================================
2022-03-11T15:06:51.3780924Z [command]/usr/bin/dotnet --version
2022-03-11T15:06:51.5740113Z 6.0.200
2022-03-11T15:06:51.5794851Z ##[warning]No test result files matching TEST-karma.xml were found.
2022-03-11T15:06:51.6214350Z ##[section]Finishing: PublishTestResults
As is evident in the second section of the logs above, the file exists but according to the step after that, no files exist.
I get the same results whether I use JUnit or NUnit and a majority of my configuration is copied from a working pipeline at my work.
I found my answer by messing around with the configuration for the pipeline:
- task: PublishTestResults#2
condition: succeededOrFailed()
inputs:
testResultsFormat: NUnit
testResultsFiles: "**/TEST-*.xml"
mergeTestResults: true
rather than having a search folder and a testResultsFiles property i used only the testResultsFiles property and prefixed it with a recursive search for any file that starts with TEST- and is an xml file

npm command not found when running node app from bash script (linux EC2)

I have a node app on an linux AMI EC2 instance, and I want to run it with systemd. I've written a bash script with the npm start command, but when I run it with systemd the logs tell me that the npm command cannot be found:
Nov 03 21:22:45 ip-10-85-147-43.ec2.internal systemd[1]: Started NodeApp.
Nov 03 21:22:45 ip-10-85-147-43.ec2.internal systemd[1]: Starting NodeApp...
Nov 03 21:22:45 ip-10-85-147-43.ec2.internal start.sh[9609]: /home/ec2-user/source/NodeApp/start.sh: line 8: npm: command not found
Nov 03 21:22:45 ip-10-85-147-43.ec2.internal systemd[1]: NodeApp.service: main process exited, code=exited, status=127/n/a
Nov 03 21:22:45 ip-10-85-147-43.ec2.internal systemd[1]: Unit NodeApp.service entered failed state.
Nov 03 21:22:45 ip-10-85-147-43.ec2.internal systemd[1]: NodeApp.service failed.
When I run npm -v it shows 7.4.0.
here's my bash script:
#! /bin/bash
cd home/ec2-user/source/NodeApp/
npm start
And the contents of NodeApp.service
[Unit]
Description= Node app
[Service]
ExecStart=/home/ec2-user/source/NodeApp/start.sh
[Install]
WantedBy=multi-user.target
Hi its easy to run node app using a process management tool called PM2, you can install PM2 directly to the Ec2 using terminal console and run the www file which is located in the soucefolder/bin
Install PM2 : npm install pm2 -g or pm2 completion install
RUN PM2 : cd /source_folder/bin and locate www file
pm2 start www --name="Application Name"

In Azure pipelines, how do you set up X display for headless Chrome testing?

In our Azure Pipeline, we are attempting to run end-to-end tests in our Angular 9 application, using the following task ...
The package.json defines this ...
"scripts": {
...
"e2e": "npm run install-puppeteer && ng e2e"
},
but when the agent runs the above task, it dies with "Unable to open X display" error ...
> npm run install-puppeteer && ng test "--watch=false" "--codeCoverage=true"
> thermo-protect-ui#0.0.0 install-puppeteer /home/vsts/work/1/s
> cd node_modules/puppeteer && npm run install
> puppeteer#5.5.0 install /home/vsts/work/1/s/node_modules/puppeteer
> node install.js
Chromium is already in /home/vsts/work/1/s/node_modules/puppeteer/.local-chromium/linux-818858; skipping download.
08 12 2020 18:54:56.858:INFO [karma-server]: Karma v4.4.1 server started at http://0.0.0.0:9876/
08 12 2020 18:54:56.863:INFO [launcher]: Launching browsers Chrome with concurrency unlimited
08 12 2020 18:54:56.866:INFO [launcher]: Starting browser Chrome
08 12 2020 18:54:57.134:ERROR [launcher]: Cannot start Chrome
[2099:2099:1208/185457.060113:ERROR:browser_main_loop.cc(1439)] Unable to open X display.
08 12 2020 18:54:57.134:ERROR [launcher]: Chrome stdout:
08 12 2020 18:54:57.135:ERROR [launcher]: Chrome stderr: [2099:2099:1208/185457.060113:ERROR:browser_main_loop.cc(1439)] Unable to open X display.
08 12 2020 18:54:57.675:INFO [launcher]: Trying to start Chrome again (1/2).
08 12 2020 18:54:59.035:ERROR [launcher]: Cannot start Chrome
22 error Exit status 1
23 error Failed at the thermo-protect-ui#0.0.0 test script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 1, true ]
Normally this kind of thing is dealt with by installing Xvfb. How do I do that using Azure pipelines?
Really this is #Hugh Lin's answer from the comments but for the benefit of posterity I created a bash task which ran a script in my repository. The script contained
#!/bin/bash
xvfb-run --auto-servernum --server-args='-screen 0, 1920x1080x24' npm run test -- --watch=false --codeCoverage=true
Then the tests ran successfully.

Angular Quickstart fails karma testing out of the box

The official Angular quickstart is not able to run karma tests after a clean install on Windows 10. I typed the following 4 commands and nothing else:
C:\projects\temp>git clone https://github.com/angular/quickstart.git
C:\projects\temp>cd C:\projects\temp\quickstart
C:\projects\temp\quickstart>npm install
...install logs omitted for brevity
C:\projects\temp\quickstart>npm start
...app launched successfully, but logs omitted for brevity
C:\projects\temp\quickstart>npm test
...Error shown in complete logs below
The full error message resulting after the final command is as follows:
C:\projects\temp\quickstart>npm test
> angular-quickstart#1.0.0 pretest C:\projects\temp\quickstart
> npm run build
> angular-quickstart#1.0.0 build C:\projects\temp\quickstart
> tsc -p src/
> angular-quickstart#1.0.0 test C:\projects\temp\quickstart
> concurrently "npm run build:watch" "karma start karma.conf.js"
[0]
[0] > angular-quickstart#1.0.0 build:watch C:\projects\temp\quickstart
[0] > tsc -p src/ -w
[0]
[1] 01 06 2017 14:33:49.385:WARN [watcher]: Pattern "C:/projects/temp/quickstart/testing/**/*.js" does not match any file.
[1] 01 06 2017 14:33:49.406:WARN [watcher]: Pattern "C:/projects/temp/quickstart/testing/**/*.ts" does not match any file.
[1] 01 06 2017 14:33:49.407:WARN [watcher]: Pattern "C:/projects/temp/quickstart/testing/**/*.js.map" does not match any file.
[1] 01 06 2017 14:33:49.891:WARN [karma]: No captured browser, open http://localhost:9876/
[1] 01 06 2017 14:33:49.906:WARN [karma]: Port 9876 in use
[1] 01 06 2017 14:33:49.908:INFO [karma]: Karma v1.7.0 server started at http://0.0.0.0:9877/
[1] 01 06 2017 14:33:49.908:INFO [launcher]: Launching browser Chrome with unlimited concurrency
[1] 01 06 2017 14:33:49.958:INFO [launcher]: Starting browser Chrome
[1] 01 06 2017 14:33:51.821:INFO [watcher]: Changed file "C:/projects/temp/quickstart/src/app/app.component.js".
[1] 01 06 2017 14:33:51.843:INFO [watcher]: Changed file "C:/projects/temp/quickstart/src/app/app.component.spec.js".
[1] 01 06 2017 14:33:51.850:INFO [watcher]: Changed file "C:/projects/temp/quickstart/src/app/app.module.js".
[0] 2:33:51 PM - Compilation complete. Watching for file changes.
[1] 01 06 2017 14:33:51.873:INFO [watcher]: Changed file "C:/projects/temp/quickstart/src/main.js".
[1] 01 06 2017 14:33:51.965:INFO [Chrome 58.0.3029 (Windows 10 0.0.0)]: Connected on socket pXysNFDP8RC3agm8AAAA with id 9156960
[1] 01 06 2017 14:33:52.077:INFO [karma]: Delaying execution, these browsers are not ready: Chrome 58.0.3029 (Windows 10 0.0.0)
What needs to change in order for npm test to succeed out of the box on Windows 10?
The Angular quickstart project has largely been superseded by the Angular CLI. I would suggest using the CLI it for any new projects as it not only gives you an initial framework for your application, but it will also generate the additional boilerplate needed as you extend your application.
Before installing Angular CLi, ensure you have an up to date version of Node (6.9.0 or higher) and NPM (3 or higher). Also there may be other prerequisites not listed in the documentation, to install on an Android system I found it also needed Python 2.7 and g++ installed.
Install with:
npm install -g #angular/cli
To create a new project:
ng new PROJECT-NAME
cd PROJECT-NAME
ng serve
ng new will take some time to complete as in addition to building the project structure it also does the npm install.
Run unit tests with ng test and end-to-end tests with ng e2e.
Both ng test and ng serve will run continuously watching for changes and rebuilding the affected code. You can even leave both running in separate windows if you wish.
ng generate BLUEPRINT will generate new code, blueprints include module, component, service, class, directive, enum, guard, interface, pipe
Other useful commands:. You may want to experiment with this a bit before you write a real app: by default each component or service goes into its own subdirectory and is added to the top level app module, but you can explicitly create modules to provide additional structure if you wish.
ng build: builds your application into the output path.
ng doc KEYWORD: opens angular documentation for that keyword.
ng eject: ejects the app and outputs webpack configuration
ng lint: lints the project
ng xi18n: extracts i18n messages from the project.
This is not answer, just give more case to find out root cause.
I followed steps which you described and got this:
D:\Project\temp\quickstart>npm test
> angular-quickstart#1.0.0 pretest D:\Project\temp\quickstart
> npm run build
> angular-quickstart#1.0.0 build D:\Project\temp\quickstart
> tsc -p src/
> angular-quickstart#1.0.0 test D:\Project\temp\quickstart
> concurrently "npm run build:watch" "karma start karma.conf.js"
[0]
[0] > angular-quickstart#1.0.0 build:watch D:\Project\temp\quickstart
[0] > tsc -p src/ -w
[0]
[1] 02 06 2017 22:34:04.733:WARN [watcher]: Pattern
"D:/Project/temp/quickstart/testing/**/*.js" does not match any file.
[1] 02 06 2017 22:34:04.746:WARN [watcher]: Pattern
"D:/Project/temp/quickstart/testing/**/*.ts" does not match any file.
[1] 02 06 2017 22:34:04.747:WARN [watcher]: Pattern
"D:/Project/temp/quickstart/testing/**/*.js.map" does not match any file.
[1] 02 06 2017 22:34:05.103:WARN [karma]: No captured browser, open
http://localhost:9876/
[1] 02 06 2017 22:34:05.120:INFO [karma]: Karma v1.7.0 server started at
http://0.0.0.0:9876/
[1] 02 06 2017 22:34:05.120:INFO [launcher]: Launching browser Chrome with
unlimited concurrency
[1] 02 06 2017 22:34:05.156:INFO [launcher]: Starting browser Chrome
[1] 02 06 2017 22:34:06.742:INFO [Chrome 58.0.3029 (Windows 10 0.0.0)]:
Connected on socket GGConP8Ks64GubSYAAAA with id 70486747
[1] 02 06 2017 22:34:07.822:INFO [watcher]: Changed file
"D:/Project/temp/quickstart/src/app/app.component.js".
[1] 02 06 2017 22:34:07.837:INFO [watcher]: Changed file
"D:/Project/temp/quickstart/src/app/app.component.spec.js".
[1] 02 06 2017 22:34:07.856:INFO [watcher]: Changed file
"D:/Project/temp/quickstart/src/app/app.module.js".
[0] 10:34:07 PM - Compilation complete. Watching for file changes.
[1] 02 06 2017 22:34:07.865:INFO [watcher]: Changed file
"D:/Project/temp/quickstart/src/main.js".
[1] 02 06 2017 22:34:08.084:INFO [karma]: Delaying execution, these browsers
are not ready: Chrome 58.0.3029 (Windows 10 0.0.0)
Chrome 58.0.3029 (Windows 10 0.0.0): Executed 2 of 2 SUCCESS (0.159 secs /
0.149 secs)
Chrome 58.0.3029 (Windows 10 0.0.0): Executed 2 of 2 SUCCESS (0.117 secs /
0.112 secs)

Resources