gpt4 book ai didi

java - 如何从使用 JUnit 4 的 Before 和 After 注释进行注释的方法中排除执行持续时间

转载 作者:行者123 更新时间:2023-12-01 18:24:21 24 4
gpt4 key购买 nike

我正在使用 JUnit 4 运行一些简单的性能测试,并使用 Jenkin 的 perfReport,以便生成性能报告。

在运行这些测试时,我注意到测试方法的执行包括用 JUnit 4 的 @before 和 @after 注释的方法的执行时间。

我遇到了类似的帖子:Exclude @Before method duration from JUnit test time ,但是我需要 JUnit 样式报告中的输出格式,因为 Jenkin 的 perfReport 仅解析 JUnit 样式格式。

那么,有没有办法排除这些带注释的方法的执行时间呢?

最佳答案

我通过执行以下操作解决了这个问题:

  1. 扩展 BlockJUnit4Runner
  2. 重写 runChild() 方法,因为这是接收测试通知程序的地方
  3. 编写自定义 runLeaf() 方法,因为这是触发测试通知程序以通知测试已开始或停止的地方。
  4. 重写 methodInvoker() 方法,因为这是调用测试方法的地方
  5. 创建一个新的 Statement 类,该类在功能上执行与 methodInvoker 中创建的 invokeMethod() 语句对象相同的一组操作。然而,此类接收测试通知程序,从而允许您控制测试被视为开始的方式和时间。

上述方法的一个问题是,您需要提取有助于运行 JUnit 规则的代码部分,以便保留规则执行,因为这些方法奇怪地是私有(private)的。

关于java - 如何从使用 JUnit 4 的 Before 和 After 注释进行注释的方法中排除执行持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60251404/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com