我有时间相关的单元测试,我必须在其中模拟“现在”。我使用 JodaTime,当我需要模拟 now 的值以进行与时间相关的测试时,我使用 DateTimeUtils.setCurrentMillisFixed(...),如相关答案中所建议的那样时间相关单元测试中接受的答案中所建议的那样。
但是,当单元测试并行运行时,这会导致问题。正确的解决方案是让所有类从可以在测试中模拟出来的时钟依赖项中获取当前时间(正如在时间依赖单元测试中最受好评的答案中所建议的那样中最受好评的答案中所建议的那样)。但是,我目前没有足够的开发资源来进行重构工作。
我的问题是有没有办法通过以某种方式指定哪些测试可以并行运行而哪些不可以来解决这个问题?有没有办法通过使用 DateTimeUtils.setCurrentMillisProvider() 来解决这个问题?
测试框架是 JUnit4,测试是从 maven 运行的。