Я создал инфраструктуру автоматизации, которая выполняет тестовые наборы одновременно.
В настоящее время, если моя команда БД выполняется несколькими потоками (тестами) одновременно, данные неверны.
Я пытался использовать stati c, synchronized et c безуспешно, есть идеи?
Пример кода:
public static synchronized String createAccount() throws IOException, SQLException {
DbManager.createDatabaseConnection();
DbManager.executeSqlUpdateStatement(Account_Creation_Scripts.createAccount_Sql_Command());
account_pojo.setAccountEmail(locateMostRecentlyCreatedAccount());
LoggerInstance.log("Account created: " + account_pojo.getUniEmail());
DbManager.closeDatabaseConnection();
return tutor_pojo.getAccountEmail();
}
Если я запускаю код с использованием экземпляра потока x1, каждый тест будет создавать и извлекать правильные учетные записи из базы данных dt et c.
Обратите внимание:
- Нет исключений.
- Эта проблема возникает только при одновременном запуске более одного потока, например:
test1 = uses account: email1@email.com
test2 = uses account: email2@email.com
test3 = uses account: email3@email.com
test4 = uses account: email3@email.com
Как видно, как test3, так и 4 используют один и тот же адрес электронной почты, хотя в базе данных видны email1-4@email.com.