java - jUnit 4 中的 TestSuite 设置

标签 java junit installation test-suite

我已经设法了解如何在 jUnit 4 中制作 TestSuite,但我真的很怀念 v3 将套件包装在 TestSetup 中的可能性。

关于如何在 jUnit 4 中为一组测试用例执行一些 @BeforeClass/@AfterClass 设置有什么想法吗?

@RunWith(Suite.class)
@Suite.SuiteClasses({Test1.class, Test2.class})
public class MyTestSuite {
    @BeforeClass public static void setUpClass() {
        // Common initialization done once for Test1 + Test2
    }
    @AfterClass public static void tearDownClass() {
        // Common cleanup for all tests
    }
}

很遗憾,上面的代码片段不起作用。 @BeforeClass 仅适用于每个测试类。

最佳答案

这是我所拥有的,它运行得很好。

import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;

@RunWith(Suite.class)
@SuiteClasses({ TestSuite1.class, TestSuite2.class })
public class CompleteTestSuite {

    @BeforeClass 
    public static void setUpClass() {      
        System.out.println("Master setup");

    }

    @AfterClass public static void tearDownClass() { 
        System.out.println("Master tearDown");
    }

}

这是我的测试套件 1(对测试套件 2 执行相同操作)。

import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;

@RunWith(value = Suite.class)
@SuiteClasses(value = { TestCase1.class })
public class TestSuite1 {}

这是我的测试课。同时创建 testcase1 和 testcase2。

import static org.junit.Assert.assertEquals;

import org.junit.BeforeClass;
import org.junit.Test;

public class TestCase1 {

    @BeforeClass 
    public static void setUpClass() {      
        System.out.println("TestCase1 setup");
    }

    @Test
    public void test1() {
        assertEquals(2 , 2);
    }
}    

你应该有 5 个类 全套 套房1 套房2 测试1 测试2

并确保您的构建路径中有 Junit。这应该运行!

这是输出

Master setup
TestCase1 setup
Master tearDown

关于java - jUnit 4 中的 TestSuite 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6580670/

相关文章:

kotlin - 一起运行时,测试会失败,但是单独运行会成功,即使在每次测试之前重新模拟实例

visual-studio-2012 - 如何卸载 Visual Studio 2012 以便我可以安装预加密版本?注册表键??

windows - 在 Wix 中获取命令行参数

java - 无法使用 Gradle 实例化 FXML Loader

java - 如何禁用 SWT 文本中的粘贴操作

java - 如何为测试类中的所有测试启动一次 Jersey 测试容器(Grizzly)?

java - 对于以不同方式创建的等效 Jackson 对象,assertEquals 失败

Oracle即时客户端部署?

java - 使用 JasperReports 打印数组列表内容

java - liferay - 无法调用Portlet类的processAction