-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Error al ejecutar un test que tiene mismo nombre que el archivo principal #14
Comments
En Wollok XText se puede hacer esto porque supone que todo import es hacer import de un archivo .wlk , en otras palabras, en XText no se podía hacer import de un archivo de test. Por otro lado, si yo defino dos archivos de test así: // archivo definoObjeto.wtest
object estoyEnElTest { method saluda() = "soy el del test"} y // archivo importoObjeto.wtest
test "Importa bien desde un test" {
assert.equals("soy el del test", estoyEnElTest.saluda())
} Eso anda en WollokTS pero estalla en WollokXText ¿Qué queremos @uqbar-project/wollok ? ¿Queremos que se pueda importar objetos desde un archivo de test? Esto implica lanzar error cuando alguien pone el mismo nombre de archivo para un test que para un .wlk. ¿O preferimos lo otro? (No poder importar objetos desde otro test, pero permitir que dos archivos tengan el mismo nombre) @nscarcella sospecho que me vas a decir que lo segundo es difícil de implementar, ¿verdad? |
No, te voy a decir que esto no se trata de importar, se trata de referenciar. Todo en el ambiente tiene que tener un nombre único si querés referenciarlo(por ejemplo, para correr un test tenés que primero encontrarlo). También digo que las extensiones de archivo diferentes son algo heredado del eclipse, pero no se usan para nada. Un archivo es un package y vos podrías definir adentro tests u objetos o cualquier entidad y, obviamente, no pueden tener el mismo nombre. Dicho eso, si hay dos packages con el mismo nombre el linker los combina, así que tal vez habría que revisar si esa validación está haciendo lo que esperamos que haga porque, en principio, no veo el problema. |
GRACIAS ❤️ Ok, me parece entonces que complejizar todo más es al dope, yo me quedaría con que el nombre del archivo es el nombre del package, y no importa la extensión. Si el linker se encuentra esto: // archivo definoObjeto.wlk
object estoyEnElWlk { method saluda() = "soy el del wlk"} y // archivo definoObjeto.wtest
object estoyEnElWTest { method saluda() = "soy el del wtest"} Entonces es cierto que tengo a disposición ambos: PERO Si en el wtest hay tests, me tira un error rarísimo:
cuando esa línea 6 no existe en definoObjeto.wlk pero sí existe en definoObjeto.wtest, y ese wtest sí tiene una línea 6 con el test. ¿Puede ser que el linker al "mergear" y luego tener que dar un error esté tomando el archivo original incorrecto? |
Uhm... Sí, eso va a pasar. El objeto delega el nombre de archivo al package
así que el package que queda da el nombre del archivo del que salió.
La idea el mergeo de packages es poder mergear un package con una versión
más nueva del mismo package, así que este comportamiento es el esperado.
No sé, yo deprecaría las extensiones y, si querés workaroundear los
proyectos que ya existen podes appendearle algo al nombre de los archivos
con extensión wtest
El lun, 6 jun. 2022 15:39, asanzo ***@***.***> escribió:
… GRACIAS ❤️
Ok, me parece entonces que complejizar todo más es al dope, yo me quedaría
con que el nombre del archivo es el nombre del package, y no importa la
extensión.
Si el linker se encuentra esto:
// archivo definoObjeto.wlk
object estoyEnElWlk { method saluda() = "soy el del wlk"}
y
// archivo definoObjeto.wtest
object estoyEnElWTest { method saluda() = "soy el del wtest"}
Entonces es cierto que tengo a disposición ambos:
[image: image]
<https://user-images.githubusercontent.com/5421992/172224593-7c9bde1c-4698-4152-b7c5-89f024f5670a.png>
PERO
Si en el wtest hay tests, me tira un error rarísimo:
[ERROR]: shouldMatchFileExtension at src/definoObjeto.wlk:6
cuando esa línea 6 no existe en definoObjeto.wlk pero sí existe en
definoObjeto.wtest, y ese wtest sí tiene una línea 6 con el test.
¿Puede ser que el linker al "mergear" y luego tener que dar un error esté
tomando el archivo original incorrecto?
—
Reply to this email directly, view it on GitHub
<#14 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAFPE2YYTPNBGTYRJQNZ6KTVNZAXRANCNFSM5XZZOOTA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Hay un poquito de discusión sobre esto por acá también: |
Con los últimos cambios, el repo del ejemplo solamente se queja del mismo nombre entre los archivos Igual todo se puede ejecutar si se skipean las validaciones. 2021s1-simulacro-superpoderoses-lgassman git:(master) wollok test
🧪 Running all tests on /Users/palumbon/git/2021s1-simulacro-superpoderoses-lgassman
🌏 Building environment for /Users/palumbon/git/2021s1-simulacro-superpoderoses-lgassman...
[ERROR]: shouldNotDuplicatePackageName at src/superpoderoses.wlk:--
[ERROR]: shouldReturnAValueOnAllFlows at src/superpoderoses.wlk:66
[ERROR]: shouldNotDuplicatePackageName at src/superpoderoses.wtest:--
💥 Uh-oh... Unexpected Error!
Fatal error while running validations. Aborting run due to validation errors!
➜ 2021s1-simulacro-superpoderoses-lgassman git:(master) ✗ wollok test --skip-validations
error: unknown option '--skip-validations'
(Did you mean --skipValidations?)
➜ 2021s1-simulacro-superpoderoses-lgassman git:(master) ✗ wollok test --skipValidations
🧪 Running all tests on /Users/palumbon/git/2021s1-simulacro-superpoderoses-lgassman
🌏 Building environment for /Users/palumbon/git/2021s1-simulacro-superpoderoses-lgassman...
Running 14 tests...
src
superpoderoses
"Superpoderoses"
✓ "punto 1.1 capacidad de batalla que aporta un poder"
✓ "punto 1.2 capacidad de batalla de un personaje"
✓ "punto 2.1 Saber el miembro vulnerable de un equipo"
✓ "punto 2.2 Saber la calidad de un equipo"
✓ "punto 2.3 Saber los mejores poderes de un equipo"
✓ "punto 3.1 personajes contra el peligro"
✓ "punto 3.2 Saber si un peligro es sensato "
✓ "punto 4.1 Afrontar peligro individualmente: OK"
✓ "punto 4.1 Afrontar peligro individualmente: no OK por radioactividad"
✓ "punto 4.1 Afrontar peligro individualmente: no OK por capacidad de batalla"
✓ "punto 4.2 Afrontar peligro (moderado) en equipo "
✓ "punto 4.2 Afrontar peligro (alto) en equipo (no ok)"
✓ "punto 5.1 Metahumano "
✓ "punto 5.2 Mago "
✓ 14 passing También esetá el error También cambiamos la API para tener más control de lo que se ejecuta: #162 |
Si tanto el .wtest como alguno de los archivos .wlk tienen el mismo nombre al intentar ejecutarlo falla.
Por ej en este repositorio:
https://github.com/obj1unq/2021s1-simulacro-superpoderoses-lgassman
Ambos archivos se llaman igual: "superpoderoses.wlk" y "superpoderoses.wtest".
El error es el siguiente:
The text was updated successfully, but these errors were encountered: