为什么Robolectric的第一次测试需要这么长时间?

时间:2015-01-07 11:34:20

标签: android testing robolectric

我正在使用Robolectric测试我的Android应用,但我遇到了一个奇怪的情况。会发生的事情是,当我运行一些测试时,使用Robolectric进行的第一次测试比其他测试花费的时间要多得多。它不是来自测试本身,因为我按照测试的顺序尝试了不同的配置,结果是第一次测试总是最慢的。

是否有任何Robolectric设置时间或类似的东西?提供的任何信息都很有用。

例如: Example of slow first test

1 个答案:

答案 0 :(得分:6)

是的,这是设置时间。不幸的是,没有中心位置可以收集有关Robolectric的所有信息。

观看this presentation,您会在第28,29,30,35页找到更多解释。

如果您对Robolectric感兴趣,请更改2.0版中的某些方法。重大变化是:

  1. Javaassist用法替换为ASM用法 - 用于加速开始时间
  2. 他们尝试减少影子类的数量并使用ASOP Android代码 - 以获得更好的测试可靠性
  3. 如果您使用gradle,请查看robolectric gradle plugin。并行添加的运行测试和其他调整选项。并行运行测试显然只对大量测试有用(数百+)