Я запускаю тесты пользовательского интерфейса для приложения RCP с помощью SWTBot, который отлично работает при запуске тестов в eclipse IDE. Теперь я хочу запустить тесты в maven, что пока тоже работает. К сожалению, через цепочку зависимостей org.eclipse.swtbot.eclipse.finder --> org.eclipse.ui.editors --> org.eclipse.ui.ide
org.eclipse.ui.ide
также присутствует в приложении, которое запускает тесты. В этом пакете присутствуют некоторые неожиданные пункты меню, и этот комплект следует исключить во время выполнения теста. Как этого добиться?
При запуске тестов в eclipse я просто исключаю пакет org.eclipse.ui.ide
из конфигурации запуска теста SWTBot, и все работает как положено.
1 ответ
Цепочка зависимостей org.eclipse.swtbot.eclipse.finder --> org.eclipse.ui.editors --> org.eclipse.ui.ide
содержит необязательную ссылку: для первого пакета требуется только второй пакет посредством необязательного импорта пакета org.eclipse.ui.texteditor
. Вот почему вы можете удалить пакет o.e.ui.ide
из тестовой среды выполнения, запущенной из Eclipse, и o.e.swtbot.eclipse.finder
по-прежнему будет работать.
В нормальных условиях вы можете добиться того же в среде выполнения теста Tycho, убедившись, что необязательная зависимость не находится в целевой платформе:
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<version>${tycho-version}</version>
<configuration>
<filters>
<filter>
<type>eclipse-plugin</type>
<id>org.eclipse.ui.ide</id>
<removeAll />
</filter>
</filters>
</configuration>
</plugin>
Но вот почему это не работает в вашем конкретном случае: когда вы используете программу тестирования пользовательского интерфейса (useUIHarness=true
), Тихо безоговорочно добавляет пакет org.eclipse.ui.ide.application
в качестве дополнительного требования к ваша тестовая среда выполнения. Этот пакет имеет необязательное требование к org.eclipse.ui.ide
, поэтому с конфигурацией целевой платформы, приведенной выше, вы получите ошибку «не удается разрешить зависимость» с жалобой на неудовлетворенное ограничение org.eclipse.ui.ide.application
.
Итак, я не думаю, что в вашем случае есть решение, но я считаю это ошибкой в Tycho. Тесты ботов SWT выполняются в Eclipse, поэтому они также должны выполняться в Tycho. Очевидно, Eclipse не нуждается в пакете org.eclipse.ui.ide.application
(иначе он перестал бы работать, если бы вы отменили выбор пакета org.eclipse.ui.ide
), так что Тихо он тоже не нужен. Отправьте отчет об ошибке для Tycho и приложите минимальный образец проекта, в котором воспроизводится проблема, чтобы я мог это исправить.
Похожие вопросы
Новые вопросы
eclipse
Eclipse - это IDE с открытым исходным кодом и платформа для создания приложений. Существует множество плагинов для различных языков программирования и других инструментов, ориентированных на разработку (таких как моделирование, просмотр баз данных и т. Д.). Этот тег следует использовать только для вопросов, конкретно касающихся Eclipse IDE или платформы, а не для общих (Java и т. Д.) Тем программирования.
org.eclipse.swtbot.eclipse.finder
предоставляет возможности тестирования для редакторов, представлений и рабочей среды, что также является причиной того, что я не могу удалить прямую зависимость. Но большое спасибо за ответ, я думаю, что эта функция фильтра может быть полезна в других ситуациях, и я не знал об этом раньше.provided
, что по-прежнему приводит к ошибке разрешения зависимости.