jHipster:Karma测试通过'纱线测试'但在WebStorm中失败

时间:2017-09-15 14:38:27

标签: angular karma-runner webstorm jhipster yarnpkg

我使用带有Angular 4前端的jHipster设置了一个项目,而且我在WebStorm(v2017.2.4)IDE中运行Karma单元测试时遇到了问题。

但是,如果我在命令行中使用yarn test一起运行它们,它们都会通过。这实际上让我失望,因为当我只想在IDE中快速运行特定测试时,运行这样的所有测试非常耗时。

我得到的WebStorm中的失败消息是:

  

失败:无法解析XXXService的所有参数:(?)。

(其中XXX是失败的众多服务之一的名称。)

我在github上设置了一个空的jHipster生成项目,以演示我遇到此问题的项目:https://github.com/TLDC/jhi-karma-issue-test。在src / test / javascript下运行任何测试都会给我这个问题。

有没有办法配置WebStorm以使这些测试在IDE中通过而不只是使用纱线测试?

编辑:已发现yarn test实际运行命令yarn run lint && karma start src/test/javascript/karma.conf.js

编辑2:我现在在WebStorm的“Karma服务器”选项卡中发现,在测试运行之前报告了webpack无法编译,并报告了大量各种错误。我在这里收到了一段摘录:

  
    

[at-loader]中的错误./spec/helpers/mock-principal.service.ts:14:59         TS2693:'承诺'仅指类型,但在此处用作值。

         

[at-loader]中的错误./spec/test.module.ts:24:14         TS1219:对装饰器的实验支持是一个在将来的版本中可能会发生变化的功能。设置     ' experimentalDecorators'删除此警告的选项。

  
     

webpack:无法编译。

完整错误报告在此处(截至最后截止)https://gist.github.com/TLDC/af7d319d1c2a87bc1cfb9233e725bd3a

2 个答案:

答案 0 :(得分:0)

如果HttpModule没有导出HttpModule(希望它没有'),那么测试配置不够。 只需将imports添加到TestBed.configureTestingModule({ imports: [MyTestModule, HttpModule], declarations: [AlertTableComponent], providers: [AlertService] }) ,它就可以在任何环境中使用:

String

答案 1 :(得分:0)

我终于设法解决了这个问题。

首先,感谢@smnbbrv,似乎这个问题可能只发生在Windows上。 这有点意义,因为它似乎是某个路径的问题。

我发现问题是在运行Karma测试之前,webpack尝试编译引用tsconfig.json文件的TypeScript文件:

  

项目根/ SRC /测试/ JavaScript的/ tsconfig.json

但是,此文件中不存在此文件,而是报告此问题,而不是在Karma Server控制台上报告大量TypeScript编译错误。这会导致测试失败。

我能够通过简单地从

的实际位置复制tsconfig.json文件来解决这个问题
  

项目根/ tsconfig.json

到Karma测试运行器中webpack所期望的那个。然后,这会导致所有测试按预期在WebStorm中传递。

理想情况下,找到一些配置来改变某个地方告诉webpack在哪里寻找这个文件会很好,但我不能在我的生活中找到这样做的地方。但是这个解决方法现在肯定对我有用。