角 6 的业力测试

Moh*_*del 6 npm karma-jasmine karma-webpack angular

我正在尝试使用 npm 运行角度测试

ng test

但问题是 chrome 在测试完成后启动而不停止,所以我使用了:

ng test --watch=false
Run Code Online (Sandbox Code Playgroud)

但这会导致错误“Chrome 69.0.3497 (Linux 0.0.0) ERROR”,导致 chrome 超时

bil*_*jov 6

您可以使用Headless chrome在基于 unix 的系统下避免这种情况

这是在无头环境中运行 Chrome 浏览器的一种方式。本质上,在没有 chrome 的情况下运行 Chrome!它将 Chromium 和 Blink 渲染引擎提供的所有现代 Web 平台功能引入命令行。

首先:
配置您karma.conf.js使用无头镀铬,例如添加customLaunchers

...
browsers: ['Chrome'],
customLaunchers: {
    ChromeNoSandboxHeadless: {
       base: 'ChromeHeadless',
       flags: ['--no-sandbox']
    }
 }, 
Run Code Online (Sandbox Code Playgroud)

第二: 告诉你的package.json脚本使用你的配置进行测试:

"scripts": {
   ...
    "test": "ng test --browsers=ChromeNoSandboxHeadless",
   ...
  },
Run Code Online (Sandbox Code Playgroud)

然后运行npm run testoryarn test并且您的测试将在不打开浏览器的情况下工作。您可以url在您喜欢的浏览器(firefox、chrome、chromium 等...)中打开显示。

第二种方式: 您可以使用Karma-mocha-reporter在控制台中显示所有测试用例

  • 第一:安装 npm install karma-mocha-reporter --save-dev
  • 第二:需要你的记者里面karma.conf.jspluginsrequire('karma-mocha-reporter'),

然后将新记者添加mocha到您的记者阵列:reporters: ['mocha', 'progress', 'kjhtml']

使用npm run testyarn test将报告显示到您的控制台中运行您的测试。

其它的办法:

在您karma.config.json查看选项singleRun(布尔默认设置为false)。Set true,Karma 将启动并捕获所有配置的浏览器,运行测试,然后根据所有测试是否通过或任何测试失败以退出代码 0 或 1 退出。或者,使用标志运行它npm run test --single-run