Scalatest AnyFunSuite 中的内存管理

问题描述

我正在尝试使用 AnyFunSuite 类测试在 Scala 中通过 XML 文件实现的查询流算法。

我有 8 个查询 (Q1-Q8),范围超过 9 个文件 (F1-F9)。我为每个包含 9 个测试的查询创建了一个测试类,并创建了一个父测试类,以从 {{1} 到 Q1 的顺序依次运行它们(9*8 = 72 个测试) }} 到 Q8。所有执行时间都使用 F1 记录。

主要问题是,如果我得到如下不同的执行时间(平均 5 次运行,我对数字进行四舍五入以便更好地解释):

  • F9 for Log4j 在完整测试(72 个测试)中排在最后:Q8
  • F9 for 200 000 ms 在 Q8 查询测试(9 个测试)中排在最后:Q8
  • F9 用于 135 000 ms 作为独立测试(1 个测试):Q8

所有测试都是这种情况,真正的执行时间是独立测试。差异因子非常相关,测试在序列中越靠前,执行时间差异越大(F9 是最后一个测试的最坏情况)。我的问题是避免手动将所有测试作为独立运行(这是自动化测试的主要目的!)但似乎同一线程/进程下的测试共享内存,每次测试后都没有正确清理。

我需要的是如何处理这个问题并按顺序运行这些测试,但好像它们是独立的(可能在每次测试后清理整个内存),注意测试是独立的,不共享任何数据。

Update1:​​build.sbt 文件内容

106 000 ms

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)