angular 6 的业力测试

Karma Test With angular 6

我正在尝试使用 npm

运行 测试 angular

ng test

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

ng test --watch=false

但这会导致错误 "Chrome 69.0.3497 (Linux 0.0.0) ERROR" 这使得 chrome 超时 我正在尝试 运行 在持续部署服务器上进行此操作,因此此错误会导致流程失败,不知道如何停止

在您的 karma.conf.js 中,将 singleRun 更改为 true

singleRun: true

您可以在基于 unix 的系统下使用 Headless chrome

避免这种情况

It's a way to run the Chrome browser in a headless environment. Essentially, running Chrome without chrome! It brings all modern web platform features provided by Chromium and the Blink rendering engine to the command line.

第一:
配置你的 karma.conf.js 使用 headless chrome 例如添加 customLaunchers:

...
browsers: ['Chrome'],
customLaunchers: {
    ChromeNoSandboxHeadless: {
       base: 'ChromeHeadless',
       flags: ['--no-sandbox']
    }
 }, 

秒: 告诉您的 package.json 脚本使用您的配置进行测试:

"scripts": {
   ...
    "test": "ng test --browsers=ChromeNoSandboxHeadless",
   ...
  },

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

第二种方式: 您可以使用 Karma-mocha-reporter

在控制台中显示所有测试用例
  • 首先:安装npm install karma-mocha-reporter --save-dev
  • 第二:要求你的记者在plugins下的karma.conf.js内,如require('karma-mocha-reporter'),

然后将新报告者 mocha 添加到您的报告者数组中:reporters: ['mocha', 'progress', 'kjhtml']

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

另一种方式:

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