如何在 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);
}
}
时不时地,我会遇到间歇性问题,我需要多次 运行 才能发现这些烦人的测试。我一直在寻找一种方便的方法来设置一个数字或从 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);
}
}