当前位置: 首页 > 知识库问答 >
问题:

在JUnit中运行所有测试后调用一个方法

唐博文
2023-03-14

我想在JUnit中创建用于测试运行的自定义html报告。我有一个问题是释放资源和关闭标记后,所有的测试都完成了。

我保留了一个打开的文件,以便编写报告。因为每个测试都应该是表和行,而且有数百个,所以我不想为每个测试打开和关闭通道。这里出现的问题是测试组织--我有嵌套的套件,所以testRunFinished不是一个选项(指单个套件,不是所有测试,我看到了这个问题)。TestWatcher也不会帮助我,因为它只指单个测试。

使用的工具:Maven3.0.5、ff webdriver、JUnit4.11。

我考虑了两个选项:1)在每次测试运行时打开和关闭通道;2)覆盖finalize()以使其关闭通道

他们都不漂亮...我已经搜索了很多页,但似乎没有人有我同样的问题。

共有1个答案

东门城
2023-03-14

是的,请看这里(JUnit4.x中套件执行钩子之前和之后):

@RunWith(Suite.class)
@SuiteClasses({Test1.class, Test2.class})
public class TestSuite {
    @BeforeClass
    public static void setUp() {
        System.out.println("setting up");
    }

    @AfterClass
    public static void tearDown() {
        System.out.println("tearing down");
    }
}
 类似资料:
  • 我有一个Java应用程序,它使用Gradle作为构建系统。这是多项目构建(几个Java项目)。 当我运行时,有些测试失败了,我注意到并不是所有的测试都在运行。 如果我将以下代码添加到中,它确实会运行所有测试,但当然,构建的代码总是成功完成: 我有两个问题: gradle是否在第一次失败后停止执行测试? 是否有一种方法可以运行所有测试(即使在一些测试失败时),并且如果其中一些测试失败,构建的测试仍然

  • 我一直在设置一些合约JUnit 4测试(遵循回答这个问题的建议) - 例如,如果我有一个接口(我已经在示例中包含了泛型,因为我在我的项目中使用它们) - 但是,这是一个大大简化的示例: 我可以创建一个抽象的合同测试,例如: ...并为每个实现扩展此抽象测试类(我使用。我还将一些变量传递给抽象测试类,以测试接口的实现。 然而,实际上,一些接口返回的对象是其他接口的实现,我希望能够使用该接口的抽象契约

  • 问题内容: 在我的项目中,我必须在所有测试之前进行一些存储库设置。这是使用一些棘手的静态规则完成的。但是,在所有测试之后,我不知道如何进行清理。我不想保留一些不可思议的静态数字来引用所有测试方法的编号,我应该一直保持这种状态。 最受赞赏的方法是添加一些将在所有测试后调用的侦听器。JUnit4中已经有用于它的任何接口吗? 编辑:这与@BeforeClass和@AfterClass无关,因为我必须知道

  • 问题内容: 我有一个测试类,其中包含几种典型的测试方法,这些方法可以进行断言或检查异常,并带有注释。它们在我在Ant任务中调用以下指令时运行: 但是,在同一堂课中,我想提出几种基准性能方法,这些方法未包含在必须通过的测试中。我想要一个完全独立的Ant任务来运行这些基准测试。 有没有注释的方法介绍这种测试分类并分别调用每个类别?例如,带注释的方法将是第一类,然后虚构的方法将仅记录用于诊断报告的性能指

  • 是否有一种带注释的方法来引入这种测试分类并分别调用每个类别?例如。注释方法将是第一类,然后虚构的方法将只是用于诊断报告的日志性能指标,而不是执行决定成败的断言。我认为测试类是定位这些基准测试方法的最佳方式,但我不知道如何在Ant中封装它们的调用,以便它们单独运行。例如,是否可以在每个方法前缀“benchmark”,并告诉Ant只运行前缀有该前缀的方法,或者我可以编写自己的注释?

  • 我在JUnit测试类中使用Javautil日志(JUL),JUL在默认配置中工作(即打印到控制台)。 使用和注释的方法中的日志语句在执行时将被打印,但“@Test”方法中的日志仅在所有测试执行完成后才被打印。 不确定到底是哪里出了问题,因为同样的方法在更早的时候就起作用了。 记录器实例化: 记录器用途: 测试用例使用maven运行。我注意到,只有在我开始使用这个surefire配置并行运行测试类后