тестирование базы данных SQLite с помощью androidx.test.runner.AndroidJUnitRunner: неизвестная ошибка (код 14): не удалось открыть базу данных - PullRequest
0 голосов
/ 22 октября 2019

Уже есть вопрос об этой "неизвестной ошибке (код 14)", которую я продолжаю получать в моем простом junit.framework.TestCase, но ни один из них не помог мне.

Моя проблема в том, что модульный тест не будет запущен, поскольку контрольно-измерительные приборы не могут открыть базу данных. Часть соответствующего кода:

    //Using getInstrumentation().getTargetContext() works, but real DB is used!
    context = InstrumentationRegistry.getInstrumentation().getContext();
    db = new SoulissDBHelper(context);
    db.createWriteableDatabase();// <--breaks

Кажется, проблема связана с ложным контекстом, возвращаемым Instrumentation, поскольку с использованием getTargetContext() все работает, как ожидалось даже, в этом случае в тестах используется производственная база данных , что недопустимо.

Я недавно мигрировал на новый androidx бегунок, поэтому найденная документация, связанная с junit, часто является неточной / устаревшей, и это довольно сложнонайти обновленный документ / примеры. Аналогичным образом, многие @RunWith(AndroidJUnit4.class) связанные вопросы не применимы. Мой целевой SDK установлен на 28, другие тесты работают как положено.

Пожалуйста, помогите мне выполнить мой тест на постоянство для отдельной базы данных . Миграция в комнату на данный момент не осуществима / не запланирована, и я бы с удовольствием избежал добавления других зависимостей

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...