Где поставить тестовые занятия?
При тестировании плагинов 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.
Поэтому я рекомендую оставить фактические тестовые классы во фрагменте, который соответствует тестируемому комплекту, и поместить помощников для тестирования многократного использования в выделенный комплект.