Записи пути к классу Eclipse только используются для тестов

Одно время, которое я записал одиночному элементу в Python, я использовал класс, где все функции членства имели classmethod декоратора.

class foo:
  x = 1

  @classmethod
  def increment(cls, y = 1):
    cls.x += y
18
задан Lóránt Pintér 15 July 2009 в 09:39
поделиться

3 ответа

Боюсь, ответ в том, что вы не можете. Есть 2 открытых вопроса, которые были отложены с версии 3.5 и связаны с вашей проблемой:

9
ответ дан 30 November 2019 в 08:48
поделиться

Вы можете разделить все свои тесты в другой проект и добавить основной проект в качестве зависимости ( Проект-> Свойства -> Путь сборки Java - > Проекты -> Добавить ... )

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

Создайте тестовый проект как нормально, теперь вам нужно создать связанный ресурс, чтобы ввести папку src / test / java. Лучше всего создать его с помощью переменной, чтобы ваши проекты могли сохранить некоторую независимость от платформы. Чтобы создать новую связанную папку, выберите Новая -> Папка , введите src в поле имя папки: , затем нажмите Дополнительно >>

Щелкните Ссылка на папку в файловой системе Щелкните Переменные ... чтобы открыть диалоговое окно Выбрать переменную пути .

Если это ваш первый раз или вы подключаетесь к новому местоположению, выберите Создать ... и дайте переменной разумное имя и путь. Если все ваши проекты находятся в c: \ workspaces \ foo **, имеет смысл вызвать переменную ** WORKSPACE_ROOT и указать ей этот путь. Если у вас есть другое соглашение, это нормально, но имеет смысл поместить комментарий в файл .project, чтобы кто-нибудь мог выяснить, какое должно быть правильное значение.

Принимая значения выше, вы можете теперь установить значение WORKSPACE_ROOT / [имя тематического проекта] / src в поле ввода

Как только вы подтвердите, что вы должны увидеть папку src с маленькой стрелкой, и если вы посмотрите в файл .project, увидите что-то нравится:

<linkedResources>
    <link>
        <name>src</name>
        <type>2</type>
        <locationURI>WORKSPACE_ROOT/esf-ns-core-rp/src</locationURI>
    </link><!--NOTE the WORKSPACE_ROOT variable points to the folder containing the subject project's sandbox-->
</linkedResources>

Теперь вы можете добавить папку src / test / java в качестве исходного местоположения как обычно.

Обратите внимание, что вы также можете совместно использовать только папку src / test / java, изменив конфигурацию на что-то вроде этого:

<linkedResources>
    <link>
        <name>src/test/java</name>
        <type>2</type>
        <locationURI>WORKSPACE_ROOT/my-project/src/test/java</locationURI>
    </link>
</linkedResources>

Это дает больший контроль над конфигурацией, но вам придется повторить это для src / test / resources, src / it / java и т. д.

Затем вы устанавливаете все тестовые зависимости только в тестовом проекте.

Очень некрасиво, но работает (я также использовал это, когда мой уровень соответствия теста отличается от основного уровень соответствия, например 1,5 для тестов, но 1,4 для целевой среды).

12
ответ дан 30 November 2019 в 08:48
поделиться

На самом деле, если вы посмотрите в eclipse, как Maven интегрирует зависимости, это не повлияет на зависимости теста или времени выполнения, ваши тестовые библиотеки всегда доступны.

Maven сохранит разницу при упаковке приложение и когда оно генерирует путь к классам среды выполнения, если maven контролирует выполнение этой части. Когда дело касается eclipse, Maven просто добавляет их все без вопросов в путь сборки eclipse.

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

0
ответ дан 30 November 2019 в 08:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: