Java jUnit 4 中的 TestSuite 设置
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/6580670/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
TestSuite Setup in jUnit 4
提问by Rasmus
I've managed to find out how to make a TestSuite in jUnit 4, but I really miss the v3 possibility of wrapping a suite in a TestSetup.
我已经设法找出如何在 jUnit 4 中创建一个 TestSuite,但我真的很想念在 TestSetup 中包装套件的 v3 可能性。
Any ideas as to how to get some @BeforeClass/@AfterClass setup executed for a suite of test cases in jUnit 4?
关于如何在 jUnit 4 中为一组测试用例执行一些 @BeforeClass/@AfterClass 设置的任何想法?
I.e.
IE
@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
}
}
Unfortunately the above code fragment doesn't work. @BeforeClass
only works on a per-test-class basis.
不幸的是,上面的代码片段不起作用。@BeforeClass
仅适用于每个测试类。
采纳答案by Rasmus
Here is what I have and it runs just fine.
这是我所拥有的,它运行得很好。
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");
}
}
Here is my test suite 1 (do the same for test suite 2).
这是我的测试套件 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 {}
And here is my test class. Create both testcase1 and testcase2.
这是我的测试课。创建 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);
}
}
you should have 5 classes completesuite suite1 suite2 test1 test2
你应该有 5 个类 completesuite suite1 suite2 test1 test2
and make sure you have Junit in your build path. This should run!
并确保您的构建路径中有 Junit。这应该运行!
Here is the output
这是输出
Master setup
TestCase1 setup
Master tearDown