Angularjs 指令在执行单元测试时被多次调用 我所拥有的: 第三方指令 我的自定义指令(视图使用第三方指令) 单元测试(对于其他组件,大约300个单元测试)

Angularjs 指令在执行单元测试时被多次调用 我所拥有的: 第三方指令 我的自定义指令(视图使用第三方指令) 单元测试(对于其他组件,大约300个单元测试),angularjs,angularjs-directive,karma-jasmine,Angularjs,Angularjs Directive,Karma Jasmine,我的指令在模板中使用第三方指令,如下所示: <3rd-party-directive value="bindedValue" style="display:none;"></3rd-party-directive> <div>{{producedValue}}</div> {{producedValue}} 所以去那里没有什么神奇的。 我还为我的定制指令进行了单元测试(6个测试用例) 问题是: 如果我只为我的自定义指令(6个单元测试)运

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

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

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

{{producedValue}}
所以去那里没有什么神奇的。 我还为我的定制指令进行了单元测试(6个测试用例)

问题是:
  • 如果我只为我的自定义指令(6个单元测试)运行单元测试,则成本为:
    • 0.007秒
  • 如果在没有自定义指令的情况下运行单元测试(300单元测试),则成本为:
    • 2.3秒
  • 如果我也使用自定义指令(306单元测试)运行单元测试,其成本为:
    • 240秒。
以前有人遇到过这个问题吗?我不想显示我的代码,因为这与我如何实现代码无关。这里发生了一些不同的事情

笔记: 我用Karma+Jasmine进行测试。第二种情况下,Karma使用100%CPU。当它开始执行时,它的速度非常快,但后来它越来越慢。 比如:

1-80个单元测试-->2秒

81-120单元测试-->30秒

121-180单元测试-->90秒

181-300个单元测试-->240秒(此处每个单元测试花费~1秒…)

更新
我在自定义指令中创建了一个console.log,它似乎被调用了~600次!!!但是为什么以及如何?我认为单元测试就像沙盒一样,所以每个“描述”块都有自己的沙盒。

解决这个问题有没有运气?我们看到了完全相同的事情。据我回忆,问题是我有一个
descripe
块,它在每个
之前都有一个
,还有更多的
it
块在里面。问题是,不知何故,我将该块重命名为
it
,因此descripe变成了一个it块,事情变得很疯狂。