Тесты на windows
Opened this issue · 2 comments
osokindm commented
Проблема неработающих тестов на windows (при выданных разрешениях) может быть связана со следующим:
Постпроцессинг тестов пытается удалить файл первого Dao, который еще используется вторым Dao, из-за чего вылетает исключение.
То есть второй объект Dao не создается через createDao(), в следствие чего не закрывается в конце теста.
Чтобы избежать такое поведение можно закрыть второй объект Dao, либо когда делаем reopen перезаписать поле делегата, а не создавать новый объект TestDao.
Пример с закрытием Dao (добавлен dao.close()):
void variability(Dao<String, Entry<String>> dao) throws IOException {
final Collection<Entry<String>> entries =
List.of(
entry("key1", "value1"),
entry("key10", "value10"),
entry("key1000", "value1000"));
entries.forEach(dao::upsert);
dao.close();
dao = DaoFactory.Factory.reopen(dao);
for (final Entry<String> entry : entries) {
assertSame(dao.get(entry.key()), entry);
}
dao.close();
}
Второй вариант - измененный reopen:
public TestDao<Data, E> reopen() throws IOException {
delegate = factory.createDao(config);
return this;
}
incubos commented
Pull request пришлёте?
osokindm commented
Pull request пришлёте?
прислал