我开发了一些GUI,用户可以在其中启动和停止TestNG测试。
我是否可以在不创建条件的情况下停止TestNG进程,签入@AfterMethod,因为有些测试非常长(超过15分钟),因此@AfterMethod解决方案是无效的。没有要求来停止优雅的测试。
在最新的TestNG版本(>7.0)中有什么解决方案吗?例如,在IExecutorFactory或ITestRunnerFactory的帮助下
参考文献:
发布于 2021-07-11 07:17:11
由于您依赖于GUI来启动和停止测试,所以我假设存在start和stop方法。
在start方法中,您可以创建一个以编程方式执行测试的ExecutorService,而在stop方法中,您可以关闭这个执行器。
另外,请注意,建议您做一些机制来在ExecutorService和start之间共享stop。否则,如果通过GUI允许多个测试运行(连续启动操作),就会造成麻烦。
public class MyClass {
private ExecutorService ex;
public static void testRunner() {
TestNG t = new TestNG();
t.setTestClasses(new Class[] {YourTestClass.class});
t.run();
}
public void start(){
ex = Executors.newFixedThreadPool(1);
ex.execute(MyClass::testRunner);
}
public void stop(){
ex.shutdownNow();
}
}https://stackoverflow.com/questions/68292977
复制相似问题