2013-02-11 2 views
2

В демонстрационном проекте Android LunarLander модульные тесты включаются прямо в проект в (неподходящую) папку под названием «тесты». Это соответствует руководству по тестированию SDK, которое рекомендует этот макет, а не создавать тесты в отдельном проекте. Однако я понятия не имею, как я могу фактически запустить эти тесты.Тестирование блоков Android - как запустить тесты в том же проекте, что и приложение?

Я не могу создать Android JUnit Test запустить конфигурацию:

  • если я пытаюсь «запустить все тесты в проекте или пакете» он жалуется, что файл манифест не содержит приборную информацию - ясно, что она использует файл манифеста верхнего уровня вместо файла манифеста тестов.
  • Если я пытаюсь выполнить один тест, я не могу найти его, потому что тесты не являются исходной папкой, и если я устанавливаю его как исходную папку, появляются ошибки, так как предполагается, что тестовый класс должен быть в пакете, начиная с 'tests.src'.

Мне кажется, что этот образец сломан ... Я надеюсь, что я ошибаюсь, так как я предпочел бы вставлять тесты в свой проект и иметь возможность легко запускать их (вместо создания отдельного теста проект, который ссылается на проект для тестируемого приложения). Кто-нибудь знает, как я могу выполнять эти тесты? Спасибо ...

+0

Вы говорите об использовании Eclipse, не так ли? – yorkw

ответ

1

Google рекомендует единый каталог «все-в-одном», потому что он делает ваши файлы легко поддерживаемыми во многих ситуациях, например, при работе с контролем источника.

Это не имеет значения, где тестовый проект находится ИНТ файловой системы, однако, вы должны импортировать его в рабочую область вашего Затмения, такой же, как то, что вы сделали для проекта LunarLander:

enter image description here

Если все идет хорошо, ваш Проводник пакетов должен выглядеть примерно так:

enter image description here

В моей Android 4.2 образцов, дела не идут хорошо, это кажется, что й e Исходный код тестового проекта LunarLander не обновляется:

  1. не поставляется с файлом project.properties.
  2. он использует то же имя пакета, что и проект LunarLander, в результате чего Eclipse должен быть обманут при импорте пакета/класса из проекта LunarLander.
  3. он автоматически не добавляет проект LunarLander для проверки пути к классу проекта, в результате чего импортированный пакет/класс из указанного проекта LunarLander невидим.

После устранения всех проблем вы можете запустить/отладить тест JUnit Android из тестового проекта.

+0

Я знаю, что я могу создать второй проект для своих тестов, и у меня это получилось легко. Но я не хочу этого делать; мой вопрос заключался в том, чтобы иметь тесты в одном проекте, и как я (и большинство людей?) структурирует ванильные Java-проекты. Обратите внимание, что в проекте LunarLander есть папка «тесты», содержащая те же файлы, что и у другого проекта тестирования. Как вы проводите тесты в «тестах» в LunarLander? – noobler

+0

Что означает google ([см. Здесь] (http://developer.android.com/tools/testing/testing_android.html#TestProjects)) относится к «наличию тестов в одном проекте» исключительно на уровне файловой системы, т. Е.как вам следует организовать папки/файлы вашего проекта на жестком диске. Когда он входит в Eclipse, тестовый проект должен быть логически импортирован и сформирован как отдельный проект в обозревателе пакетов Eclipse. Тесты подпапок имеют собственную структуру описания проекта и отображаются только как обычная папка с необработанными файлами при импорте проекта LunarLander. Вот как ADT разработан и должен работать. – yorkw

+0

При воспроизведении с образцами, что я обычно использую «Файл -> Импорт ... -> Android -> Существующий код для Android в рабочую область» импортирует проект (лучше работать с копией образцов, так как это изменит оригинал файл в папке sdk/samples). Обратите внимание, что это будет анализировать и обнаруживать все подпроекты (если они хорошо сформированы) и импортировать их в Eclipse за один раз. Тем не менее, они все еще показаны как два проекта в Проводнике пакетов. Помните, что Package Explorer - это только логическое представление для вашего проекта в файловой системе. Вы должны запускать/отлаживать свои тесты из тестового проекта. – yorkw

Смежные вопросы