我正在将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在控制台中显示编译错误。
答案 0 :(得分:0)
这不是理想的解决方案,但是它可以解决原始问题:
使用
--watch=false
运行命令将报告编译错误。同样,如果您对规范文件进行了更改,从而导致重新生成触发(如果您有--watch=true
),则也会通过cli在控制台中显示编译错误。