2017-09-15 158 views
1

我已经使用jHipster和Angular 4前端设置了一个项目,并且在我的WebStorm中运行Karma单元测试时出现了问题(v2017.2.4 )IDE。jHipster:Karma测试通过'纱线测试',但在WebStorm失败

但是,如果我在命令行中使用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噶服务器选项卡,它正在报告的WebPack无法编译测试与运行前大量的各种错误报道。我已经包括了这个片段在这里:

错误的[在装载机] ./spec/helpers/mock-principal.service.ts:14:59 TS2693: '无极' 只指的是一种类型,但在这里被用作一个值。

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

webpack:无法编译。

完整的错误报告是在这里(最多截断)https://gist.github.com/TLDC/af7d319d1c2a87bc1cfb9233e725bd3a

+1

是否有代表问题的github项目?没有可重现的问题示例,就无法回答您的问题。没有plunkr或任何,但**完全配置的github项目** – smnbbrv

+1

我试图做一个小项目,现在有问题。我无法分享实际的代码,因为它的机密性。虽然这很奇怪,但我无法在一个小例子中使用它。我们通过jHipster自动生成使用的代码,所以我会说标记添加到我的问题 – Plog

+0

好吧,我产生一个空jhipster项目,并提出了github上为它:https://github.com/TLDC/jhi-karma-issue-测试你可以尝试在src/test/javascript下运行任何Karma测试,并且它们在WebStorm中失败,出现同样的错误我对 – Plog

回答

0

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

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

我发现的问题是,以前噶测试运行的WebPack试图编译打字稿文件下引用tsconfig.json文件:

项目根/ src目录/测试/ JavaScript的/ tsconfig。 json

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

我能够简单地复制从它的实际位置tsconfig.json文件在

项目根/ tsconfig.json

到一个在用的WebPack有望解决这一问题Karma测试赛跑者。这会导致所有测试按预期通过WebStorm。

理想情况下是好找一些配置改变的地方,告诉的WebPack到哪里寻找这个文件,但我不能为我的生活找到在哪里做。但是这个解决方法现在对我来说确实有效。

0

如果MyTestModule不出口HttpModule(希望它不'),然后测试没有配置足够的。 只需添加HttpModuleimports,它应该在任何enviropment工作:

TestBed.configureTestingModule({ 
    imports: [MyTestModule, HttpModule], 
    declarations: [AlertTableComponent], 
    providers: [AlertService] 
}) 
+0

感谢您的答复,但我没有太多寻找代码更改解决方案,因为我知道测试工作。他们只是不能在IDE中工作。也尝试了这一点,他们仍然不能在IDE中工作。 – Plog

+0

是的,他们工作。但是你知道,这是不正确的测试床配置 – valorkin

+0

您的修补程序也不起作用。我已经编辑了很多原始问题来澄清一些事情。 – Plog

相关问题