执行单元测试时,指令被多次调用

时间:2015-05-31 18:10:45

标签: angularjs angularjs-directive karma-jasmine

我拥有的:

  • 第三方指令
  • 我的自定义指令(视图使用第三方指令)
  • 单元测试(对于其他组件,大约300个单元测试)

我的指令在模板中使用第三方指令,如下所示:

<3rd-party-directive value="bindedValue" style="display:none;"></3rd-party-directive>

<div>{{producedValue}}</div>

所以没有什么魔法去那儿。 我还有自定义指令的单元测试(6个测试用例)。

问题:

    1. 如果我仅针对我的自定义指令运行单元测试(6单元测试),则需要花费:
      • 0.007秒
    1. 如果我在没有自定义指令单元测试(300单元测试)的情况下运行单元测试,则需要花费:
      • 2.3秒
    1. 如果我使用自定义指令运行单元测试(306单元测试),则需要花费:
      • 240秒

以前有人遇到过这个问题吗?我不想显示我的代码,因为它不是关于我如何实现我的代码。这里有些不同......

说明:

我用Karma + Jasmine进行测试。第二种情况下,Karma使用100%CPU。当它在执行的开始时它真的很快但后来它的速度越来越慢。 喜欢:

1 - 80次单元测试 - &gt; 2秒

81 - 120单元测试 - &gt; 30秒

121-180单元测试 - &gt; 90秒

181-300单元测试 - &gt; 240秒(这里每个单元测试成本约为1秒......)

更新

我在自定义指令中创建了一个console.log,它似乎被调用了~600次!但为什么和如何?我认为单元测试是沙盒式的,所以每个'describe'块都有自己的沙盒。

0 个答案:

没有答案