Как установить по умолчанию рабочий каталог для конфигураций запуска JUnit в Eclipse? - PullRequest
21 голосов
/ 23 сентября 2008

Наш Java-код (не тестовый код) считывает файлы из текущего каталога, что означает, что рабочий каталог должен быть правильно настроен при каждом запуске кода.

При запуске теста JUnit из Eclipse автоматически создается конфигурация запуска. Проблема в том, что рабочий каталог в этой конфигурации запуска по умолчанию всегда является корневым каталогом проекта, что всегда неверно, тест не пройден, я должен открыть диалоговое окно конфигурации запуска, изменить рабочий каталог и перезапустить тест. Это очень раздражает. То же самое происходит, когда я запускаю один метод тестирования.

Я уже рассмотрел это:

  • Изменение текущего каталога из тестового кода - невозможно по проекту.
  • При открытии файла передать параметр родительского каталога - слишком сложно, так как это повлияет на множество мест.
  • Используйте Копировать конфигурацию запуска в Eclipse для создания новых конфигураций запуска из существующих, для которых уже задан правильный рабочий каталог. Это на самом деле не имеет смысла, так как я хотел бы быстро запустить тест или метод теста, просто вызвав «запустить этот тест / метод как тест JUnit».

В общем, похоже, что это ответственность Eclipse, а не код.

Есть ли способ установить рабочий каталог по умолчанию для всех будущих, только что созданных конфигураций запуска JUnit?

Ответы [ 5 ]

11 голосов
/ 23 сентября 2008

Это субъективный ответ:

Я считаю, что вы делаете свои тесты неправильно, вы не должны загружать файлы из JUnit, используя относительные или полные пути, а вместо этого иметь их в качестве ресурсов в проекте (добавить их в путь сборки) и загружать их как ресурсы в тестах JUnit. Таким образом, если что-то изменится в файловой системе, кто-то использует другую файловую систему или IDE, но все еще будет иметь их в пути сборки (в качестве исходных папок), у вас не будет проблем.

Я не уверен, что это именно то, что вы имеете в виду, но если вы действительно хотите изменить его, перейдите в Параметры запуска конфигурации -> вкладка JUnit -> Аргументы, в нижней части (Eclipse 3.4) вы увидите Рабочий каталог, нажмите ' другой "и изменить его оттуда.

9 голосов
/ 13 октября 2008

Насколько я могу судить, нет способа изменить рабочий каталог по умолчанию для будущих конфигураций запуска JUnit в Eclipse 3.4. Эта проблема была также сообщена как ошибка в базе данных ошибок Eclipse.

Однако в ИДЕЯ это возможно. Есть кнопка Изменить значения по умолчанию для установки всех видов значений по умолчанию для каждого типа конфигурации запуска отдельно.

3 голосов
/ 03 февраля 2009

С Eclipse 3 вы можете установить свой рабочий каталог. Зайдите к вам, запустите / отладьте конфигурацию -> вкладка Аргументы. В рабочем каталоге выберите «другое» и введите корень вашего теста

1 голос
/ 23 сентября 2008

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

Если у вас есть суперкласс для большинства ваших тестов, напишите в нем константу. Или: если у вас есть суперкласс для большинства ваших тестов, напишите метод установки @Before. Или: если у вас нет суперкласса для большинства ваших тестов, напишите константу в некотором классе кодовой базы тестирования.

1 голос
/ 23 сентября 2008

Я не нашел возможности сделать это, но вы можете использовать:

GetClass () getResourceAsStream (имя файла);.

GetClass () getClassLoader () getResourceAsStream (имя файла);..

Этот метод находит ресурс на пути к классам. Первый относится к местоположению класса, второй - к любому «корневому элементу» пути к классам. Затем вы можете, например, добавить корневой каталог проекта в classpath.

Однако это не работает, если вы также хотите записать в файл.

...