我已经设法找到如何在 jUnit 4 中制作 TestSuite,但我真的很怀念在 TestSetup 中包装套件的 v3 可能性。
关于如何为 jUnit 4 中的一组测试用例执行一些 @BeforeClass/@AfterClass 设置,有什么想法吗?
I.e.
@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 {}
这是我的测试课。创建测试用例1和测试用例2。
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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)