Karma没有选择变化,必须运行两次测试

时间:2014-04-29 10:05:34

标签: intellij-idea jasmine karma-runner

我正在 IntelliJ IDEA (最新,13.1.2)上 Karma (最新,0.12.14)上运行 Jasmine 测试< strong> OS X 。

IntelliJ只使用指向我的业力安装的Karma插件:/usr/local/lib/node_modules/karma

问题在于,Karma观察者并没有从JS文件中选择新的更改。当我再次运行测试时,所有都可以。这不是一个很大的问题(它们运行速度非常快),但是在你做出改变后总是进行两次测试是不合适的。

有人遇到类似的问题吗?

7 个答案:

答案 0 :(得分:7)

将以下属性添加到karma.conf.js文件中:

usePolling: true

我把它放在autoWatch标志之后。

参考:AutoWatch doesn't work #895

答案 1 :(得分:6)

终于有了这个工作。当在IntelliJ中使用Karma和Webpack / Gulp / etc等构建工具时,这是a known issue,并且后处理文件在Karma直接服务的文件之外。

解决方法是手动修改此文件中的IntelliJ配置:...\plugins\js-karma\js_reporter\karma-intellij\lib\intellijRunner.js

#75方法的runWithConfig()行或附近,更改refresh属性 - &gt; true

请参阅this comment for details

IntelliJ和Webstorm都存在这个问题并且修复方式相同。

答案 2 :(得分:5)

在使用IntelliJ IDEA的情况下,可以尝试使用 偏好&gt;一般&gt;取消选中&#34;安全写&#34;

答案 3 :(得分:2)

我不确定intelij的旧版本,但我使用的是2016.3(编写本文时的最新版本)并且一切正常,假设karma配置有autoWatch: true。 完全相同的问题我所要做的就是在intelij中打开Toggle auto-test并且所有内容都开始正常工作而没有任何其他更改。

答案 4 :(得分:1)

请检查karma配置文件中的autoWatch属性设置为TRUE。

答案 5 :(得分:0)

此外,如果您使用Sublime Text 3,则在您的用户设置中设置&#34; atomic_save&#34;:false,因为它也会导致手表出现问题。见here

答案 6 :(得分:0)

为我工作。在尝试usePolling: truemodifying the intellijRunner.jsunchecking Safe Write之后,我仍然必须保存或运行两次测试才能捕获更改。

制作一个复合宏,以同时保存和运行文件以及保存并重新运行测试。然后我通过Keymap覆盖了每个命令的快捷方式。

How to bind multiple actions to a shortcut

screenshot of macro: Save and Run test at cursor

screenshot of macro: Save and Re-run last test

screenshot of Keymap for macros