wollok icon indicating copy to clipboard operation
wollok copied to clipboard

Migrar la version de junit

Open Guusy opened this issue 5 years ago • 10 comments

Segun lo hablado en este PR, estaria bueno migrar la version de junit hacia 5.

Ya que esta contiene features copada como DisplayName y Nested que van a hacer que nuestros tests sean mas legibles al momento de correrlos/leerlos.

Guusy avatar Aug 04 '19 17:08 Guusy

@Juancete ya que estamos haciendo la migración a dev-2.0, por ahí convendría probar de meter la dependencia a JUnit 5 y ver si no se rompen los tests (no se si serán retrocompatibles).

fdodino avatar Dec 05 '19 13:12 fdodino

@fdodino Ok, puedo hacer la prueba y vemos los resultados

Juancete avatar Dec 05 '19 13:12 Juancete

Acabo de linkear tres artículos:

  • https://developer.ibm.com/dwblog/2017/top-five-reasons-to-use-junit-5-java/
  • https://howtodoinjava.com/junit5/junit-5-vs-junit-4/
  • https://www.baeldung.com/junit-5-migration

En el primer artículo se menciona que es totalmente retrocompatible JUnit 5 con Junit 4 (e incluso con JUnit 3) así que sería iterativa la migración de los 1300 tests (en lugar de 2400)

fdodino avatar Dec 06 '19 11:12 fdodino

Y efectivamente es retrocompatible por el componente JUnit Vintage. La doc oficial es https://junit.org/junit5/docs/current/user-guide/. A mí mucho no me gusta cómo pasaron las annotations a assertions con lambdas (estilo expected ahora se envuelve en una lambda, medio como en Wollok), pero bueh... seguiré pispeando.

fdodino avatar Dec 06 '19 11:12 fdodino

Revisando como migrar dentro del proyecto me encuentro en el POM del proyecto test estas líneas

				<dependencies>
					<!-- Force using the latest JUnit 47 provider -->
					<dependency>
						<groupId>org.apache.maven.surefire</groupId>
						<artifactId>surefire-junit47</artifactId>
						<version>2.8</version>
					</dependency>
				</dependencies>

Y buscando que dependencia encontré surefire-junit5 en versión ALPHA del año 2016. Me metió un poco de miedo esto.

Pero seguí buscando y encontré esta página de surefire que indica que si subimos las versión, parece manejar ambos mundos sin problemas, por lo tanto volaría las líneas que fuerzan a trabajar con una versión específica de JUnit. Creo que voy por este camino para la prueba.

Juancete avatar Dec 06 '19 11:12 Juancete

Y una más: https://leeturner.me/posts/building-a-camel-case-junit5-displaynamegenerator/ , con la annotation DisplayNameGenerator.Standard automáticamente convertís camelCase a espacios, aunque los números se los lleve puestos, en ese artículo le puso onda esta persona para que no pase, e incluso le metió emojis.

fdodino avatar Dec 06 '19 11:12 fdodino

Dejo un link interesante para manejar la migración con maven https://wiki.eclipse.org/Tycho/How_Tos/JUnit5

Juancete avatar Dec 06 '19 20:12 Juancete

https://blogs.itemis.com/en/xtext-2.14-adds-support-for-junit-5

https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html

Otros materiales de lectura aportados por @fdodino

Juancete avatar Dec 09 '19 13:12 Juancete

Xpect doesn't support JUnit 5. https://github.com/eclipse/Xpect/issues/262

We have to go back to JUnit 4

Juancete avatar Dec 09 '19 13:12 Juancete

https://hub.packtpub.com/testing-xtext-and-xtend/

Buen link que explica un poco como se testea el lenguaje

Juancete avatar Dec 13 '19 18:12 Juancete