первое решение
Используйте TestNG вместо этого.
@Before*
аннотации ведут себя this way в TestNG.
Никакой метод, аннотированный @Before*
, не должен быть статическим.
@org.testng.annotations.BeforeClass
public void setUpOnce() {
//I'm not static!
}
второе решение
И если вы не хотите, чтобы сделать это, вы можете использовать an execution listener from Spring (AbstractTestExecutionListener
).
Вы должны аннотировать тестовый класс, как это:
@TestExecutionListeners({CustomTestExecutionListener.class})
public class Test {
//Some methods with @Test annotation.
}
, а затем реализовать CustomTestExecutionListener
с помощью этого метода:
public void beforeTestClass(TestContext testContext) throws Exception {
//Your before goes here.
}
Самодостаточный в одном файле, который будет выглядеть следующим образом:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"commonContext.xml" })
@TestExecutionListeners({SimpleTest.class})
public class SimpleTest extends AbstractTestExecutionListener {
@Override
public void beforeTestClass(TestContext testContext) {
System.out.println("In beforeTestClass.");
}
@Test
public void test() {
System.out.println("In test.");
}
}
Можете ли вы добавить внешнюю зависимость к другой хорошо известной структуре? –
@ GrzegorzGórkiewicz: Конечно, что вы предлагаете? – carlspring
Я добавил еще одно решение. –