加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何在JUnit5中实现自定义运行器

发布时间:2020-12-15 01:07:28 所属栏目:Java 来源:网络整理
导读:有没有办法在JUnit5中完全控制测试方法的执行(包括前/后方法),类似于JUnit4 @RunWith注释)? 我正在尝试构建一个JUnit5 Arquillian扩展,但由于Aquillian基本上需要在容器中执行每个测试,所以当从Junit5扩展中运行Arquillian时我遇到了问题. 我的代码在这里:

有没有办法在JUnit5中完全控制测试方法的执行(包括前/后方法),类似于JUnit4 @RunWith注释)?

我正在尝试构建一个JUnit5 Arquillian扩展,但由于Aquillian基本上需要在容器中执行每个测试,所以当从Junit5扩展中运行Arquillian时我遇到了问题.

我的代码在这里:BasicJunit5ArquillianTest.java

测试应该在一个单独的容器中运行所有方法(包括之前/之后),该容器可以是单独的JVM,远程或嵌入式服务器或任何隔离的.我的扩展从beforeEach钩子运行测试方法,使用Arquillian传输测试类并使用LauncherFactory.create()在容器中运行它,收集测试结果并将其传回.

问题是测试方法执行两次 – 通过正常的JUnit5执行和来自beforeEach钩子的我的Arquillian扩展.我想仅通过Arquillian运行测试并跳过方法的正常执行.

这在JUnit5扩展中是否可行?
或者我需要创建一个自定义测试引擎,可能会扩展Jupiter测试引擎?

最佳答案
没有扩展点(yet?)允许您定义测试的运行位置和方式.对于线程来说已经是这样,这意味着无法在JavaFX应用程序线程或Swing EDT上运行它们.

您可能需要更深入地实施engine,但这意味着用户必须在编写Arquillian测试或编写Jupiter测试之间进行选择.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读