[Error Ruby] mocha/integration/mini_test/adapter.rb:26:in `included’: uninitialized constant MiniTest (NameError)
Publicado el 27 de julio de 2023Hoy me encontré con este error ejecutando unos test en Ruby:
Mocha::ExpectationErrorFactory.exception_class = ::MiniTest::Assertion
^^^^^^^^^^^
Did you mean? Minitest
Así que salí a buscar el repositorio de código de mocha (una biblioteca para mocks y stubs en Ruby), y encontré que el problema ya había sido reportado. En las notas de la versión más reciente de Minitest, avisan que la capa de compatibilidad con MiniTest
ahora se carga únicamente al estar presente la variable de ambiente MT_COMPAT
. Como se puede ver en el error, mocha hace un llamado a MiniTest
en la línea 26 de lib/mocha/integration/mini_test/adapter.rb
en vez de usar Minitest
.
Ya hay un Pull Request corrigiendo el problema. Pero mientras no publiquen una versión actualizada, podemos evitar el error temporalmente agregando la variable de ambiente MT_COMPAT
al ejecutar nuestros tests:
De todas formas, no tardará en publicarse una versión nueva de mocha olvidándose del viejo nombre MiniTest
.
Claramente este cambio en minitest rompe la compatibilidad hacia atrás. Esto generalmente debería hacerse únicamente en versiones mayores, al pasar a la versión 6.0.0 de 5.18.1, en vez de hacerlo en la versión 5.19.0 como pasó. Pero como discuten en el reporte del repositorio de mocha, el cambio tiene más de 10 años, así que ya viene siendo hora de que se vaya actualizando el código 😁
Actualización: Hace apenas un par de horas que se publicó esta entrada, y ya hay una nueva versión corregida de mocha. mocha 2.1.0 corrige el error con MiniTest
👍
No hay comentarios en este post
Feed de comentariosDejar un comentario
<pre lang="L"> código </pre>
Siendo L un lenguaje compatible GeSHI. Más info.