我的@Before和@After方法没有被Junit接收
public class TestSetup {
@Before
public void browserSetUp() {
// code for before a test
}
@After
public void tearDown() {
// code after a test
}
}
在我定义的另一个类文件中
public class Steps{
@Step
public void step1() {
//Code for step 1
}
@Step
public void step2() {
// Code for Step 2
}
}
最后,我正在为我的测试调用这些步骤
public class Tests {
Steps step = new Steps();
@Test
public void TC_0001 {
step.step1();
step.step2();
}
}
@Test
方法正在执行,但@Before
和@After
方法在@Test方法之前没有执行。我是否必须将TestSetup
类包含在某个地方?任何帮助将不胜感激。
**思考1:当我使用Maven构建时,我的@Before
@After
方法驻留在一个类中(TestSetup
。java - 名称不以{{1}结尾这可能就是为什么Maven没有把它拿起来执行?
答案 0 :(得分:1)
@Before
和@After
用于运行测试的同一个类中。您应该将此方法放在测试类上:
public class Tests {
Steps step = new Steps();
@Test
public void TC_0001 {
step.step1();
step.step2();
}
@Before
public void browserSetUp() {
// code for before a test
}
@After
public void tearDown() {
// code after a test
}
}
答案 1 :(得分:0)
@Before
和@After
仅在单个测试之前执行,如果它们与@Test
在同一个类中定义。在您的情况下,TestSetup
类不包含任何测试。因此,要么让Test
继承TestSetup
,要么创建一个rule来执行"围绕"你的考试。