在进行测试之前,是否有可能要求junit运行一个脚本?
我不想运行@Before
,因为它只会初始化一个测试。
我认为setUp
也没有做同样的事情。
有ClassRule,但它需要维护一个Test列表。
一个好处是有一个入口测试文件,所以我可以从这里运行我的java代码。
使用示例:
我知道人们会告诉我在gradle之前或另一个构建工具中运行它。
我正在使用flyway进行数据库迁移,版本号存储在我的spring boot yaml文件中。我选择使用java而不是gradle配置flyway,因为gradle需要使用命令行进行迁移,因此无法使用jenkins运行。
另外,我不知道如何在gradle中读取yaml的值,也不知道如何运行脚本。
答案 0 :(得分:2)
您需要使用@BeforeClass
注释。
它表示附加的静态方法必须在类中执行一次和之前 。当测试方法共享计算成本高昂的设置时(例如,连接到数据库,连接池),就会发生这种情况。
例如,Hibernate SessionFactory
初始化的昂贵操作:
private static SessionFactory sessionFactory;
@BeforeClass
public static void beforeClass() {
sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
}