1

Lors du test des plugins Eclipse RCP, il est recommandé d'avoir toutes les classes et ressources de test dans un fragment (test) dédié. De cette façon, toutes les classes du plugin hôte peuvent être accédées, peu importe si ces paquets sont réellement exportés ou non. Mais que se passe-t-il si j'ai une infrastructure de test commune, utilisée par de nombreux plugins?Où mettre les classes de test?

Je ne peux pas mettre ceci dans un fragment, puisque je ne peux pas réutiliser des classes dans un fragment ailleurs.

Répondre

2

Un fragment ne contient pas au moment de l'exécution. C'est fusionné avec son Fragment-Host.

Vous devez soit placer le code dans un bundle/plug-in standard, soit utiliser un bundle poxy qui expose les classes du fragment accessibles à partir d'autres fragments ou bundles. Par exemple:

hôte

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

Fragment

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

Cependant, cette dernière approche utilise l'en-tête Eclipse spécifique Extensible-API qui ne peut être comprise par la mise en œuvre OSGi Equinox. Par conséquent, ma recommandation serait de laisser les classes de test réelles dans un fragment qui correspond au test du faisceau sous test et de mettre les aides de test réutilisables dans un paquet dédié.