Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在进行测试之前,可以要求junit运行一个规定吗?_Java_Spring_Unit Testing_Junit_Spring Boot - Fatal编程技术网

Java 在进行测试之前,可以要求junit运行一个规定吗?

Java 在进行测试之前,可以要求junit运行一个规定吗?,java,spring,unit-testing,junit,spring-boot,Java,Spring,Unit Testing,Junit,Spring Boot,在进行测试之前,可以要求junit运行一个规定吗 我不想在之前运行,因为它只会初始化一个测试。 无论是setUp,因为我认为它做的是相同的事情 有ClassRule,但它需要维护一个测试列表 最好有一个入口测试文件,这样我就可以从这里运行java代码了 用法示例: “整个测试需要启动一个数据库。” “需要运行迁移脚本” 我知道人们会告诉我在gradle或其他构建工具之前运行这个 我使用flyway进行数据库迁移,版本号存储在我的spring boot yaml文件中。我选择使用java而不是

在进行测试之前,可以要求junit运行一个规定吗

我不想在之前运行
,因为它只会初始化一个测试。
无论是
setUp
,因为我认为它做的是相同的事情

有ClassRule,但它需要维护一个测试列表

最好有一个入口测试文件,这样我就可以从这里运行java代码了

用法示例:

  • “整个测试需要启动一个数据库。”
  • “需要运行迁移脚本”
我知道人们会告诉我在gradle或其他构建工具之前运行这个

我使用flyway进行数据库迁移,版本号存储在我的spring boot yaml文件中。我选择使用java而不是gradle来配置flyway,因为gradle需要使用命令行来进行迁移,所以不能与jenkins一起运行

此外,我不知道如何在gradle中读取yaml的值,也不知道如何运行脚本。

您需要使用注释

它指示附加到的静态方法必须在类中的所有测试之前执行一次。当测试方法共享昂贵的计算设置(例如连接到数据库、连接池)时,就会发生这种情况

例如,Hibernate
SessionFactory
初始化的昂贵操作:

private static SessionFactory sessionFactory;

@BeforeClass
public static void beforeClass() {
    sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
}

我将此标记为可能的重复,因为如果您只是在谈论Junit,“prescript”是不明确的。Junit只是一个运行单元测试的Java工具。有几种方法可以运行Junit(包括Gradle)。重复的问题解决了如何以可移植的Junit方式运行设置步骤,但您可能提出了错误的问题,可能想询问如何在Gradle中执行此操作。是否可以使用@Autowired?我如何在这个静态中加载上下文?@BigDong当然你是对的,这是不可能的,这是一个坏例子。我已经用另一个更新了。谢谢你的评论。