Где поставить тестовые занятия?

При тестировании плагинов Eclipse RCP рекомендуется использовать все тестовые классы и ресурсы в выделенном (тестовом) фрагменте. Таким образом, можно получить доступ ко всем классам в плагине хоста, независимо от того, экспортированы эти пакеты или нет.

Но что, если у меня есть общая тестовая инфраструктура, которая используется многими плагинами?

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

1 ответ

Решение

Фрагмент не существует во время выполнения. Это объединено с его Fragment-Host,

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

хозяин

Bundle-SymbolicName: org.example.test.util
Eclipse-ExtensibleAPI: true

Фрагмент

Bundle-SymbolicName: org.example.test.util.impl
Export-Package: org.example.test.util.impl
Fragment-Host: org.example.test.util

Тем не менее, последний подход использует Eclipse-специфичные Extensible-API заголовок, который понимается только реализацией Equinox OSGi.

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

Другие вопросы по тегам