Come posso impostare un progetto di prova per un progetto di plugin Eclipse
-
05-07-2019 - |
Domanda
Sto lavorando a un plug-in eclipse e ho provato a creare un altro progetto di test separato dal plug-in. Il motivo per cui lo faccio è non lasciare che il plug-in dipenda da jUnit quando viene esportato. Tuttavia, non riesco ad accedere all'API del plug-in Eclipse quando eseguo i test. Ogni volta che provo ad aggiungere dipendenze plug-in l'elenco di importazione a quello è vuoto.
Qualcuno sa come importare l'API del plug-in Eclipse in un progetto esistente? Il layout dell'area di lavoro è simile al momento:
+- com.foo.myplugin
| |
| +- JRE System Library
| |
| +- Plug-in Dependencies
| |
| +- src
| |
| +- icons, META-INF, plugin.xml, etc...
|
+- com.foo.myplugin.test
|
+- JRE System Library
|
+- JUnit 4
|
+- src
Soluzione
Il modo consigliato di dirlo sembra essere con i frammenti del plug-in:
http://rcpquickstart.com/ 2007/06/20 / unit test-plug-in-con-frammenti /
Il frammento ottiene un alto grado di accesso al codice del plug-in e separa la logica / le dipendenze del test dal plug-in stesso.
Ora, se solo potessi trovare un modo per testarli in un sistema automatizzato ... (vedi: Automatizzare unit test (junit) per lo sviluppo del plugin Eclipse )
Altri suggerimenti
È possibile esportare la dipendenza plug-in dal progetto plug-in. Il modo più semplice è così:
-
Vai alle
com.foo.plugin
proprietà del progetto -
Vai a Percorso build Java > Ordina ed esporta
-
Controlla la voce Dipendenze plug-in
Il progetto di test dovrebbe ora essere in grado di utilizzare l'API plug-in senza la necessità di utilizzare tutta la configurazione del plug-in richiesta per un progetto plug-in.
Potresti provare ad aggiungere la natura del plugin al tuo nuovo progetto myplugin.test.
Nel tuo file .project:
<natures>
<nature>org.eclipse.pde.PluginNature</nature>
[...]
</natures>
Quindi, nel percorso .class, aggiungi:
<classpath>
[...]
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
[...]
</classpath>
Elimina il tuo myplugin.test dallo spazio di lavoro, reimporta quel progetto e vedi se lo fa il trucco ...