如何在 Go Test IntelliJ 中重复 运行 一个或一组测试

how to run one or group of tests repeatedly in Go Test IntelliJ

时不时地,我会遇到间歇性问题,我需要多次 运行 才能发现这些烦人的测试。我一直在寻找一种方便的方法来设置一个数字或从 intelliJ "endless loop",但我没有找到。

是否有插件或者我错过了一些可以让我从 UI 执行此操作的插件(而不是为其更改代码)。

编辑:我发现每个测试实用程序插件都支持此类功能。例如,它已经存在于 JUnit,但没有用于 Go Test。我的直觉表明,应该为所有测试插件普遍提供此类功能,但每个插件方法可能有一些技术原因。

在测试的 运行 配置中有一个 "Repeat:" 下拉列表,您可以在其中指定重复次数,例如直到测试失败。我相信这是从 IntelliJ IDEA 15 开始可用的。

You can use oracle JDK to create a executor service which schedules the running /execution of the test suite periodically unless you shut down the service 

Please have a look at the below oracle doc 

https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ScheduledExecutorService.html

Sample 

 import static java.util.concurrent.TimeUnit.*;
 class BeeperControl {
   private final ScheduledExecutorService scheduler =
     Executors.newScheduledThreadPool(1);

   public void beepForAnHour() {
     final Runnable beeper = new Runnable() {
       public void run() { System.out.println("beep"); }
     };
     final ScheduledFuture<?> beeperHandle =
       scheduler.scheduleAtFixedRate(beeper, 10, 10, SECONDS);
     scheduler.schedule(new Runnable() {
       public void run() { beeperHandle.cancel(true); }
     }, 60 * 60, SECONDS);
   }
 }