Evaluar mejoras del entorno de test unitarios e integración #1553
Replies: 3 comments
-
Gran explicación. Estamos teniendo todos estos pains en nuestro Repositorio. La experiencia de desarrollo muchas veces acaba siendo pésima, sinceramente. Por otra parte, estos pains también acaban afectando al usuario, ya que en más de una ocasión hemos tenido la pipeline bloqueada sin poder hacer subidas, y teniendo que dedicar MUCHO tiempo a arreglar alguno de estos problemas, lo que nos impide entregar mejoras al usuario final. Además, que en varias ocasiones, debido a la urgencia de alguna entrega de alguna feature, hemos tenido que tener los tests deshabilitados para poder seguir desarrollando producto, ya que el único pain estaba en los tests... La verdad es que me muero de ganas de migrar a otra tecnología que solucione estos problemas, en mi opinion con Jest estaríamos mucho mejor |
Beta Was this translation helpful? Give feedback.
-
An internal Tech Evolution proposal has been opened following this initiative. |
Beta Was this translation helpful? Give feedback.
-
Actualmente usamos
sui-test
para tests unitarios e integración y este paquete utiliza internamente:Contexto
En el cluster de profesionales de Real Estate hemos estado trabajando en una épica de incrementar nuestra confianza de tests de componentes a nivel unitario y de integración.
Hemos avanzado mucho y lo continuamos haciendo pero queríamos también compartir algunas desventajas que nos hemos encontrado en el camino y que creemos que podriaís tenerlas y que podrían ser valoradas.
Desventajas
Único sandbox para todos los tests
index.html
y lanza allí toda la suite de testing. Es perfecto en el sentido de que nuestra suite de tests son lanzados sobre un navegador real, pero por el otro lado estas se ejecutan en un único sandbox y cuando en uno de sus tests trabajamos con Web APIs (DOM, Session Storage, etc) el entorno puede quedar mutado provocando side effects en el resto de tests. Por ejemplo, si renderizamos componentes que trabajan con modales, storage, cookies, history.Contexto de errores
Limitación de mocking
Actualmente usamos
sinon
para resolver esta necesidad, pero no podemos mockear módulos importados, por ejemplo módulos como custom hooks para casos donde nos interesa manipular el resultado como size viewport, feature flags, A/B tests, lazy loads con intersection observer.Velocidad
A tener en cuenta
Issue Karma + MSW
setTimeout
si nos pasa, siendo nuestra teoría que es por el tiempo de asincronia de handlers, servidor de Karma y uso de MSW mediante su proxy. Quizás esté relacionado con una issue existente:- Karma example is unstable mswjs/examples#56
- MSW randomly fails to mock GET request while running tests with karma / jasmine mswjs/msw#854
/mocks
mostrandonos warnings por consolaAcoplamiento Webpack
loader
para el transpilamiento de ficheros, cosa que tengamoslo en el radar ya que implicará un esfuerzo por si se quiere migrar a otro comoswc
.Infrastructura
Cabe recalcar que ademas en el cluster de profesionales de Real Estate hemos dejado de utilizar la suite de testing levantando la demo por Web APIs compartido (DOM, Window) entre demo de componente y componente montado del test ya que estos nos provocaban flaky tests, es decir siempre ejecutamos en modo headless.
Estamos muy interesados en saber si teneís estos mismos problemas y nos gustaría saber qué opiniones teneís sobre los mejores modos de avanzar.
Beta Was this translation helpful? Give feedback.
All reactions