Unit test en el mismo proyecto o no?

34 views
Skip to first unread message

Claudio Meschini

unread,
Sep 6, 2012, 10:49:19 AM9/6/12
to altnet-...@googlegroups.com
Como andan?

Quería consultarlos que opinan uds. sobre si los Unit Test deben desarrollarse en el mismo proyecto que testean? Y si alguien lo usa así, lleva "todo" el código a producción o solamente una version "minified" (sin los test) que realiza mediante alguna herramienta de automatización?

Acá les dejó algunos link que  han abordado la discusión:

http://haacked.com/archive/2008/04/09/unit-test-project-structure-poll.aspx

http://www.kindblad.com/2011/01/09/unit-tests-should-be-in-the-same-project-as-the-code-under-test

http://weblogs.asp.net/bsimser/archive/2008/04/09/unit-test-projects-or-not.aspx

Saludos, Claudio

Daniel Cazzulino

unread,
Sep 6, 2012, 10:50:13 AM9/6/12
to altnet-...@googlegroups.com
-1

/kzu

--
Daniel Cazzulino


2012/9/6 Claudio Meschini <cmes...@gmail.com>

--
Has recibido este mensaje porque estás suscrito al grupo "AltNet-Hispano" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a altnet-...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a altnet-hispan...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/altnet-hispano?hl=es.

José F. Romaniello

unread,
Sep 6, 2012, 11:04:09 AM9/6/12
to altnet-...@googlegroups.com
muy buena pregunta, depende a que le llamas proyecto... Pero basicamente:

  1. En .net usaba Proyecto y Proyecto.tests. Osea tenía dos proyectos, y a producción obvio que no llevaba los .tests
  2. En javascript client side, los tests los pongo en el mismo web que estan los javascript que pruebo. Los tests estan en archivos .js en una carpeta tests.... A producción me da lo mismo llevarlos. Los archivos .js de tests solo los referencio en el test harnes de qunit o mocha que es una página html. 
  3. En node.js no existe el concepto de proyecto, pero sí podría decir que todo es un package, y los tests los pongo en el package que testean... Es una práctica común. Por ejemplo express.js es un framework web MVC;  https://github.com/visionmedia/express/tree/master/test
El caso de node.js en particular es bastante interesante, por que es más lo común en todas las plataformas. Tomemos como ejemplo Sinatra de ruby:  https://github.com/sinatra/sinatra/tree/master/test  , django de python https://github.com/django/django/tree/master/tests , tomemos node.js en si mismo que es un proyecto de c https://github.com/joyent/node/tree/master/test , o ruby https://github.com/ruby/ruby/tree/trunk/test, tomemos un proyecto de java play2.0 https://github.com/playframework/Play20/tree/master/framework/test

Parece que en todos estos proyectos siempre hay una carpeta "test" o specs dentro del mismo proyecto, en lo que .Net sería más como un bicho raro con una forma de estructurar las cosas en proyectos y carpetas que no sigue la forma que parecen seguir la mayoría.

Más alla de lo que nos guste o no nos guste creo que uno tiene que seguir las convenciones para la plataforma en la que esta trabajando, desde cosas chicas... como nombrar propiedades, fields etc, hasta cosas como esta donde poner la carpeta de tests. Cuando alguien viene a .net desde Java diciendo que no le gusta usar properties en las clases y define todo con set/get lo miramos con muy mala cara, lo mismo tendría que pasar si alguien viene a .net diciendo que las clases de tests van en la misma carpeta.


saludos,



--

nelopa...@gmail.com

unread,
Sep 6, 2012, 11:21:54 AM9/6/12
to altnet-...@googlegroups.com
José, en la mayoría de los casos que mostraste los tests están
separados, creo que llaman proyecto a lo que en .net llamamos
solución.

Quizás habría que diferenciar entre proyecto y assembly (y sobre todo
definir a que llamamos proyecto).


+1 a poner los tests en un assembly separado del código de producción.
-1 a poner los tests (demasiado) juntos al código de producción.

saludos.
nelo

2012/9/6 José F. Romaniello <jfroma...@gmail.com>:

Ale Miralles

unread,
Sep 6, 2012, 11:30:32 AM9/6/12
to altnet-...@googlegroups.com
+1, los test en un assembly separado del codigo que va a prod.
Saludos, Ale Miralles

-----Mensaje original-----
De: altnet-...@googlegroups.com [mailto:altnet-...@googlegroups.com]
En nombre de nelopa...@gmail.com
Enviado el: jueves, 06 de septiembre de 2012 12:22
Para: altnet-...@googlegroups.com
Asunto: Re: [altnet-hispano] Unit test en el mismo proyecto o no?

José F. Romaniello

unread,
Sep 6, 2012, 11:42:51 AM9/6/12
to altnet-...@googlegroups.com
No Nelo, puede ser que la nomenclatura sea confusa pero no. Los ejemplos que mostre en ruby, node, etc. son proyectos y no son soluciones
Incluso me tome el trabajo de bajar una GEM y abrirlo con zip y los tests vienen en el mismo package (imagen adjunta). Cosa que no pasaría si bajas el nuget de nhibernate por ejemplo.


Yo no estoy en desacuerdo, como dije en mi última frase del mail anterior yo creo firmemente que uno tiene que seguir las reglas del juego siempre. Ni tratar de hacer lo de .net en ruby, ni tratar de hacer lo de ruby en .net... Pero aclaro que lo de .net no es lo más común.

Y creo que la diferencia a notar aca es que .Net reinvento el sistema de archivos... mientras que en la mayoría de lenguajes el código va en carpetas y estas carpetas representan los namespaces etc (a lo sumo un archivo de configuración para cosas especificas), .Net es un caso bastante particular que define solución, proyecto, namespaces etc como cosas lógicas e independientes a la estructura de archivos, para que luego algunas empresas third party puedan vender herramientas y plugins de refactorización que arreglan los namespaces para que coincidan con los nombres de las carpetas físicas.
2012-09-06_1231.png

Kiquenet

unread,
Mar 19, 2026, 5:52:19 AM (5 days ago) Mar 19
to AltNet-Hispano
Lecciones aprendidas con Unit testing ? unitarias, integración, E2E, ... pruebas automatizadas , Azure Devops Test Plan, Postman + Newman en CI-CD pipelines (Azure DEvops aka Ado, Gitlab, Github Actions...) ?
Reply all
Reply to author
Forward
0 new messages