首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以编程方式停止TestNG运行

以编程方式停止TestNG运行
EN

Stack Overflow用户
提问于 2021-07-07 21:06:53
回答 1查看 148关注 0票数 1

我开发了一些GUI,用户可以在其中启动和停止TestNG测试。

我是否可以在不创建条件的情况下停止TestNG进程,签入@AfterMethod,因为有些测试非常长(超过15分钟),因此@AfterMethod解决方案是无效的。没有要求来停止优雅的测试。

在最新的TestNG版本(>7.0)中有什么解决方案吗?例如,在IExecutorFactoryITestRunnerFactory的帮助下

参考文献:

EN

回答 1

Stack Overflow用户

发布于 2021-07-11 07:17:11

由于您依赖于GUI来启动和停止测试,所以我假设存在startstop方法。

start方法中,您可以创建一个以编程方式执行测试的ExecutorService,而在stop方法中,您可以关闭这个执行器。

另外,请注意,建议您做一些机制来在ExecutorServicestart之间共享stop。否则,如果通过GUI允许多个测试运行(连续启动操作),就会造成麻烦。

代码语言:javascript
复制
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();
    }

}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68292977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档