在所有测试开始之前,我们是否有一个可以运行一次的@beforeTests方法

时间:2012-09-24 15:19:07

标签: unit-testing maven junit junit4 junit3

在Junit,我知道有一个@beforeclass,@ before注释,我们有一个注释或设计, 允许我们编写一个方法,在整个测试过程之前只运行一次?

我们有一个脚本,它为测试设置了一些数据库数据(配置,静态,查找表等......),但是在每次单独测试之前运行它太昂贵了,我们希望它设置它,在开始运行任何测试之前只有一次。

谢谢!

2 个答案:

答案 0 :(得分:3)

由于您使用maven标记了您的问题,我将采用这种方式:您可以使用pre-integration-test阶段运行此一次性昂贵的脚本(对称地,您在{{1 }})。

您可以使用exec-maven-plugin:

post-integration-test

JUnit没有这种注释,因为它没有对环境做出任何假设:它的目标是以一种孤立的方式一次测试一个类。

答案 1 :(得分:1)

DBUnit提供您正在寻找的东西。它只是一个JUnit扩展。

  • 它具有像Clean_Insert这样的setUp操作选项 - 这意味着将清理数据库并自动插入所需的数据。以及许多其他如刷新,更新,插入等
  • 事件更容易 - 为了使用Dbunit,您不需要扩展DBTestCase类。您可以覆盖标准JUnit setUp()方法并在数据库上执行所需的操作。
  • 数据库配置操作
  • 数据集上的很多选项 - 平面,xml,数据库,流媒体