为什么Robolectric第一次testing运行时间太长?

我正在用Robolectrictesting我的Android应用程序,但是我遇到了一个奇怪的情况。 发生什么事情是,当我运行一些testing时,第一次testing比Robolectrictesting要花费更多的时间。 从testing本身来看,这并不是特定的,因为我在testing的顺序上尝试了不同的configuration,结果是第一个testing总是最慢的。

这是Robolectric的安装时间还是类似的? 提供的任何信息都很有用。

例如: 缓慢的第一个测试的例子

Solutions Collecting From Web of "为什么Robolectric第一次testing运行时间太长?"

是的,这是安装时间。 不幸的是,没有中央的地方可以收集关于Robolectric所有信息。

观看本演示文稿 ,您将在第28,29,30,35页find更多解释。

如果你感兴趣的话, Robolectric在2.0版本中改变了一些方法。 重大变化是:

  1. Javaassist用法被ASM用法取代 – 用于加速开始时间
  2. 他们尝试减less影子类的数量,并使用ASOP Android代码 – 以获得更好的testing可靠性

如果您使用gradle那么也请看一下robolectric gradle插件 。 并行添加的运行testing和其他调整选项。 并行运行testing显然只在大量testing(数百个)