gpt4 book ai didi

java - JUNIT : run setup only once for a large number of test classes

转载 作者:IT老高 更新时间:2023-10-28 20:52:46 25 4
gpt4 key购买 nike

我有一个类,我用它作为单元测试的基础。在这个类中,我为我的测试初始化​​整个环境,设置数据库映射,在多个表中输入许多数据库记录,等等。该类有一个带有 @BeforeClass 注释的方法来进行初始化。接下来,我使用具有 @Test 方法的特定类扩展该类。

我的问题是,由于所有这些测试类的前级完全相同,我如何确保它们对所有测试只运行一次。一个简单的解决方案是我可以将所有测试放在一个类中。但是,测试的数量很大,而且它们是根据功能头进行分类的。因此它们位于不同的类中。但是,由于它们需要完全相同的设置,因此它们继承了 @BeforeClass。因此,每个测试类至少完成一次整个设置,总共花费的时间比我希望的要多得多。

不过,我可以将它们全部放在一个包下的各种子包中,因此,如果有办法,我如何为该包中的所有测试运行一次设置,那就太好了。

最佳答案

使用 JUnit4 测试套件,您可以执行以下操作:

@RunWith(Suite.class)
@Suite.SuiteClasses({ Test1IT.class, Test2IT.class })
public class IntegrationTestSuite
{
@BeforeClass
public static void setUp()
{
System.out.println("Runs before all tests in the annotation above.");
}

@AfterClass
public static void tearDown()
{
System.out.println("Runs after all tests in the annotation above.");
}
}

然后你像运行一个普通的测试类一样运行这个类,它会运行你所有的测试。

关于java - JUNIT : run setup only once for a large number of test classes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18574513/

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