Nano Hash - криптовалюты, майнинг, программирование

Загрузка текстового файла из AndroidTestProject

У меня есть два проекта: мое основное приложение для Android и еще один тестовый проект, который работает поверх этого приложения для Android.

Я поместил текстовый файл в свой тестовый проект Android. Этот файл содержит информацию в формате xml. Содержимое xml - это то, что мое приложение для Android получит, когда я попаду на свой сервер.

Я использую класс TestCase в своем тестовом проекте Android, чтобы проверить эту функциональность. К сожалению, у меня возникла проблема с загрузкой содержимого в мой тестовый проект Android. Каждый раз, когда я пытаюсь загрузить файл в свой тестовый проект Android, он не находит текстовый файл. Правильно ли я говорю, что единственный способ добраться до этого файла - это удалить его из моего тестового проекта Android и поместить в свой Фактический проект Android, или мне не хватает чего-то, что позволит мне загрузить файл из моего тестового проекта Android.

Подробности: в моем тестовом проекте Android я хранил свой файл в / res / raw / testFile. Когда я пытаюсь сделать

File myFile = new File("/res/raw/testFile");

Я получаю исключение java.io.FileNotFoundException: / res / raw / testFile (такого файла или каталога нет)

Спасибо


Ответы:


1

Я использую класс TestCase.

Вы не можете получить доступ к системному ресурсу при расширении TestCase. TestCase является частью jUnit, а не android.

Вместо этого вы можете расширить InstrumentationTestCase. Это позволит вам получить доступ к контексту целевого приложения getInstrumentation().getTargetContext() и к контексту тестового приложения getInstrumentation().getContext().

Затем вы можете получить доступ к своему необработанному файлу следующим образом.

Context testContext = getInstrumentation().getContext();
InputStream input = testContext.getResources().openRawResource(R.raw.sample);

Прочтите этот вопрос, если вам нужна помощь в работе с входным потоком.

09.08.2011
  • Спасибо за ответ на вопрос. Я больше не работаю над этим проектом, но, скорее всего, это была проблема. 10.08.2011

  • 2

    Насколько я знаю, ресурс одного приложения нельзя использовать совместно с другим, если вы не сделали это как поставщик контента или что-то в этом роде ...

    Я предлагаю записать этот файл в какое-нибудь обычное место, например /sdcard//sample.xml.

    И разрешение на чтение и запись для обоих приложений.

    21.10.2010

    3

    Начиная с Android Gradle Plugin версии 1.1 вам не нужно использовать Instrumentation для загрузки файлового ресурса.

    Я написал здесь, как это сделать с помощью POJO unit test case.

    08.04.2015
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..