unitarias unitaria una tutorial test será qué que pruebas prueba método indica hacer español ejemplos curso como anotación eclipse junit eclipse-plugin

unitaria - ¿Plataforma de destino correcta para ejecutar pruebas de plugins JUnit en Eclipse Indigo?



qué anotación indica que un método será una prueba (2)

Para mi proyecto de complemento Eclipse, he definido la siguiente plataforma de destino:

<location includeAllPlatforms="true" includeMode="slicer" includeSource="true" type="InstallableUnit"> <unit id="org.eclipse.equinox.executable.feature.group" version="3.5.0.v20110530-7P7NFUFFLWUl76mart"/> <unit id="org.eclipse.rcp.sdk.id" version="3.7.1.M20110909-1335"/> <unit id="org.eclipse.jdt.feature.group" version="3.7.1.r371_v20110810-0800-7z8gFcoFMLfTabvKsR5Qm9rBGEBK"/> <unit id="epp.package.java" version="1.4.1.20110909-1818"/> ...

Mi complemento tiene pruebas de plugin JUnit (en el mismo complemento). Si intento ejecutarlos con una configuración de ejecución JUnit ( org.eclipse.platform.ide ), recibo los siguientes mensajes de la consola sobre junit y una excepción:

!ENTRY org.eclipse.osgi 2 0 2011-12-16 13:00:35.206 !MESSAGE One or more bundles are not resolved because the following root constraints are not resolved: !SUBENTRY 1 org.eclipse.osgi 2 0 2011-12-16 13:00:35.206 !MESSAGE Bundle reference:file:/Users/stolz/ws-bucky/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.eclipse.jdt.junit4.runtime_1.1.200.v20110505-0800.jar was not resolved. !SUBENTRY 2 org.eclipse.jdt.junit4.runtime 2 0 2011-12-16 13:00:35.206 !MESSAGE Missing required bundle org.junit_4.7.0. !SUBENTRY 1 org.eclipse.osgi 2 0 2011-12-16 13:00:35.207 !MESSAGE Bundle reference:file:/Users/stolz/ws-bucky/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.junit4_4.8.1.v20100525/ was not resolved. !SUBENTRY 2 org.junit4 2 0 2011-12-16 13:00:35.207 !MESSAGE Missing required bundle org.junit_4.8.1.

y

!SUBENTRY 1 org.eclipse.osgi 2 0 2011-12-16 13:00:35.234 !MESSAGE Bundle org.junit4_4.8.1.v20100525 [219] was not resolved. !SUBENTRY 2 org.junit4 2 0 2011-12-16 13:00:35.235 !MESSAGE Missing required bundle org.junit_4.8.1. !ENTRY org.eclipse.core.net 1 0 2011-12-16 13:00:39.889 !MESSAGE System property http.nonProxyHosts has been set to local|*.local|169.254/16|*.169.254/16 by an external source. This value will be overwritten using the values from the preferences Exception in thread "Plug-in Tests Runner" java.lang.IllegalArgumentException: Bundle "org.eclipse.jdt.junit4.runtime" not found. Possible causes include missing dependencies, too restrictive version ranges, or a non-matching required execution environment. at org.eclipse.pde.internal.junit.runtime.RemotePluginTestRunner.getClassLoader(RemotePluginTestRunner.java:77) at org.eclipse.pde.internal.junit.runtime.RemotePluginTestRunner.readPluginArgs(RemotePluginTestRunner.java:93) at org.eclipse.pde.internal.junit.runtime.RemotePluginTestRunner.init(RemotePluginTestRunner.java:83) at org.eclipse.pde.internal.junit.runtime.RemotePluginTestRunner.main(RemotePluginTestRunner.java:61) at org.eclipse.pde.internal.junit.runtime.PlatformUITestHarness$1.run(PlatformUITestHarness.java:47) at java.lang.Thread.run(Thread.java:680)

Con la instalación predeterminada de JDT, la prueba de la unidad funciona bien, es solo que quiero definir una plataforma de destino adecuada para una Hudson-build. Huelga decir que traté de agregar dependencias en las dos plataformas ofensivas en varios lugares, pero no sirvió para nada.

Actualización : Vaya, confundí esto con otro conjunto de pruebas; estos aquí no son sin cabeza, sino pruebas de banco de trabajo.

Otra rareza es que a veces no veré este error al ejecutar la prueba por primera vez después de cambiar a la plataforma Eclipse predeterminada y volver a la mía. Impar.


¿Cómo puede estar compilando y ejecutando sus pruebas JUnit si JUnit no es parte de la plataforma objetivo? Lo primero que debe hacer es agregar paquetes org.junit y org.junit4 a la plataforma de destino. Dado que parece que está haciendo una plataforma de destino basada en características, puede que necesite crear una función personalizada para estos paquetes.

En segundo lugar, dado que es poco probable que desee enviar sus pruebas con su complemento, es probable que desee seguir la práctica estándar de Eclipse de separar sus pruebas en un plugin * .. tests.

Normalmente, simplemente no incluye las pruebas en la aplicación RCP final o el sitio de actualización.


No me gusta tocar mi propia bocina aquí, pero la única solución que pude encontrar ahora (después de otras pocas horas de experimentación) es establecer la configuración de arranque en "all workspace and enabled target plugins" lugar de usar un función o lanzamiento basado en el complemento. Creo que esto indica que hay algo sospechoso en el proceso de resolución de plugins que Eclipse obtiene de manera predeterminada, pero no cuando comienzas a restringir las funciones / complementos disponibles.

Con ese cambio, parece funcionar de manera confiable tanto dentro de Eclipse como en Buckminster (dejando la plataforma objetivo sin cambios (!) Desde la configuración problemática en la pregunta original). Así que llegué a la conclusión de que la plataforma objetivo es, en principio, correcta, debe haber sido algo sobre el lanzamiento.

Gracias por la entrada de todos (@ andrew-eisenberg, @PaulWebster al menos).