角6的Karma测试

时间:2018-10-08 10:31:30

标签: angular npm karma-jasmine karma-webpack

我正准备使用npm进行角度测试

ng test

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

ng test --watch=false

但会导致错误“ Chrome 69.0.3497(Linux 0.0.0)错误” chrome超时 我试图在连续部署服务器上运行它,所以此错误会导致进程失败,无论如何停止

2 个答案:

答案 0 :(得分:2)

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

singleRun: true

答案 1 :(得分:1)

您可以使用Headless chrome

在基于unix的系统上避免这种情况
  

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

第一
将您的karma.conf.js配置为使用无头Chrome,例如添加customLaunchers

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

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

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

然后运行npm run testyarn test,则无需打开浏览器即可进行测试。您可以在首选的浏览器(Firefox,铬,铬等)中打开显示的url

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

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

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

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

另一种方式:

在您的karma.config.json中,

查看选项singleRun(布尔值默认设置为false)。设置true,Karma将启动并捕获所有已配置的浏览器,运行测试,然后以退出代码0或1退出,具体取决于是否通过了所有测试或任何测试失败。 Alternativ,使用标志npm run test --single-run运行它。