Есть ли какие-либо аннотации, доступные в JUnit (или других), которые могут запускать инструкцию только в начале тестов и в конце? Например: запустите сеанс SQL в начале тестирования и закройте его в конце. @Before и @After - не вариант ((( Выписка из испытаний:java Инструкция JUnit при запуске тестов и окончании тестов
public class HibernateTest {
@Autowired
SessionFactory sessionfactory;
@Autowired
DataSource dataSource;
Session session;
Transaction tx;
// @Transactional(propagation=Propagation.REQUIRES_NEW)
@Before
public void setUp() throws MalformedURLException, SQLException, DatabaseUnitException {
session = sessionfactory.openSession();
tx = session.beginTransaction();
String sql_categories = "ALTER SEQUENCE categories_category_id_seq1 RESTART WITH 1";
String sql_projects = "ALTER SEQUENCE projects_project_id_seq1 RESTART WITH 1";
String sql_donations = "ALTER SEQUENCE donations_donation_id_seq RESTART WITH 1";
String sql_clear_donations= "delete from donations *";
String sql_clear_projects = "delete from projects *";
String sql_clear_categories= "delete from categories *";
session.createSQLQuery(sql_categories).executeUpdate();
session.createSQLQuery(sql_projects).executeUpdate();
session.createSQLQuery(sql_donations).executeUpdate();
session.createSQLQuery(sql_clear_donations).executeUpdate();
session.createSQLQuery(sql_clear_projects).executeUpdate();
session.createSQLQuery(sql_clear_categories).executeUpdate();
}
@After
public void setDown() throws MalformedURLException, SQLException, DatabaseUnitException {
session.close();
tx.commit();
}
// @Transactional(propagation=Propagation.REQUIRED)
@Test
@ExpectedDatabase(
value = "classpath:ExpectedAddedCategories.xml",
assertionMode = DatabaseAssertionMode.NON_STRICT//Не проверять все поля. Только те что надо в xml файле, а не все в базе
)
public void testAddCategories() {
Category cat = new Category("sport");
Category cat2 = new Category("art");
Category cat3 = new Category("video");
session.persist(cat);
session.persist(cat2);
session.persist(cat3);
}
}
Этот код на самом деле не работает Eclipse, просто замирает и даже не одного конца испытаний (я показал только один тест).
можете ли вы уточнить, почему вы не можете использовать '@Before 'и' @ After'? Это классический способ JUnit для запуска кода до/после теста ca как таковые. – Mureinik
У меня есть тесты для работы с базой данных. Каждый тест выполняет некоторые действия. Я хочу начать сеанс (один сеанс) в начале тестов и закрыть его в конце. Но не открывать/закрывать после каждого теста, так как это вызовет задержки. Кстати, я пытался открыть/закрыть сеансы с затмением. Мои тесты просто зависают ((( – ovod