Karma ng测试未在控制台中显示生成错误

时间:2019-08-30 09:57:07

标签: angular typescript karma-jasmine

我正在将Karma与Jasmine一起使用以在Angular 7项目中执行测试。但是,我遇到了一个非常令人烦恼的场景,其中,如果.spec.ts(或.ts)文件中有任何错误,运行ng test并不会在控制台中显示这些错误。 / p>

例如,如果我在文件中重复导入:

import { DatepickerModule } from 'ngx-bootstrap';
import { DatepickerModule } from 'ngx-bootstrap';

@Component({...})
export class MyComponent { ... }

普通ng serve将此报告为错误。但是,运行ng test并不总是这样做,它只是无法运行测试,用空白页打开chrome,显示'Waiting for localhost...',最终失败:

> ng test
10 % building modules 3 / 3 modules 0 active30 08 2019 11: 28: 31.213: WARN[karma]: No captured browser, open http://localhost:9876/
30 08 2019 11: 28: 31.296: INFO[karma - server]: Karma v4.2.0 server started at http://0.0.0.0:9876/
30 08 2019 11: 28: 31.297: INFO[launcher]: Launching browsers Chrome with concurrency unlimited
10 % building modules 4 / 5 modules 1 active ...b\projects\myProject\src\styles.scss30 08 2019 11: 28: 31.720: INFO[launcher]: Starting browser Chrome
30 08 2019 11: 29: 31.722: WARN[launcher]: Chrome have not captured in 60000 ms, killing.
30 08 2019 11: 29: 31.994: INFO[launcher]: Trying to start Chrome again(1 / 2).
30 08 2019 11: 30: 31.996: WARN[launcher]: Chrome have not captured in 60000 ms, killing.
30 08 2019 11: 30: 32.277: INFO[launcher]: Trying to start Chrome again(2 / 2).
30 08 2019 11: 31: 32.279: WARN[launcher]: Chrome have not captured in 60000 ms, killing.
30 08 2019 11: 31: 32.530: ERROR[launcher]: Chrome failed 2 times(timeout).Giving up.

这使得很难弄清为什么Karma不启动测试,而只打开一个空白窗口,并带有隐含的消息Chrome have not captured in 60000 ms, killing.

我曾尝试从the config file documentation设置日志级别,但似乎还没有达到加载业力的地步,因为在此之前实际构建失败(我认为)。

如何获取用于报告spec.ts文件中这些错误的版本?


修改

使用--watch=false运行命令将报告编译错误。同样,如果您对规范文件进行了更改,从而导致重新生成触发(如果您有--watch=true),则也会通过cli在控制台中显示编译错误。

1 个答案:

答案 0 :(得分:0)

这不是理想的解决方案,但是它可以解决原始问题:

  

使用--watch=false运行命令将报告编译错误。同样,如果您对规范文件进行了更改,从而导致重新生成触发(如果您有--watch=true),则也会通过cli在控制台中显示编译错误。