stringtranslate.com

Módulo de discusión: Caso de prueba de plantilla

Varias versiones de sandbox automático

¿Podríamos extender la adición automática de una /sandboxvariante a todos los s si no hay ninguno ? — Christoph Päper 11:14, 20 de septiembre de 2019 (UTC) [ responder ]_templatei_template++i

Mesa con muchas pruebas

Para algunas plantillas, especialmente las plantillas en línea como {{ frac }} , tiene sentido tener todos o la mayoría de los casos de prueba en una sola tabla con una combinación de parámetros por fila. Sería bueno si esto pudiera manejarse mediante una sola llamada de función al pasar múltiples conjuntos de parámetros, por ejemplo:

{{ caso de prueba | _template1 = frac | _template3 = sfrac | _test1 = {1} | _label1 = un único parámetro anónimo, numérico | _test2 = {1,2} | _label2 = dos parámetros anónimos, todos numéricos | _test3 = {1,2,3} | _label3 = tres parámetros anónimos, todos numéricos | _test4 = {1=1} | _label4 = un único, primer parámetro | _test5 = {2=1} | _label5 = un único, segundo parámetro | _test6 = {3=1} | _label6 = un único, tercer parámetro | _test7 = {1,3=2} | _label7 = primer y tercer parámetro | _test8 = {2=1,3=2} | _label8 = segundo y tercer parámetro | _test9 = {a} | _label9 = un único parámetro anónimo, alfabético | _test10 = {1,1} | _label10 = dos parámetros iguales }}

11:14, 20 de septiembre de 2019 (UTC)

Como alternativa, debería haber un modo de representación adicional llamado cells . Colocaría el código y cada resultado de todas las plantillas y versiones de sandbox en celdas adyacentes en una sola fila de la tabla, pero el usuario tendría que proporcionar el código de la tabla circundante (pero posiblemente no las filas |-). — Christoph Päper 10:16, 1 enero 2020 (UTC) [ responder ]
{| class = "wikitable sortable" |+ Casos de prueba |- ! Descripción del caso de prueba !! Llamada de plantilla ! {{tl|frac}} !! {{tl|frac/sandbox}} !! {{tl|sfrac}} !! {{tl|sfrac/sandbox}} |- {{ caso de prueba | _format = cells | _template1 = frac | _template3 = sfrac | 1 | _label = un solo parámetro anónimo, numérico }} {{ caso de prueba | _format = cells | _template1 = frac | _template3 = sfrac | 1 | 2 | _label = dos parámetros anónimos, todos numéricos }} {{ caso de prueba | _format = cells | _template1 = frac | _template3 = sfrac | 1 | 2 | 3 | _label = tres parámetros anónimos, todos numéricos }} {{ caso de prueba | _format = cells | _template1 = frac | _template3 = sfrac | 1 = 1 | _label = single, primer parámetro }} {{ caso de prueba | _format = cells | _template1 = frac | _template3 = sfrac | 2 = 1 | _label = single, segundo parámetro }} {{ caso de prueba | _format = cells | _template1 = frac | _template3 = sfrac | 3 = 1 | _label = single, tercer parámetro }} {{ caso de prueba | _format = cells | _template1 = frac | _template3 = sfrac | 1 | 3 = 2 | _label = primer y tercer parámetro }} {{ caso de prueba | _format = celdas | _template1 = frac | _template3 = sfrac | 2 = 1 | 3 = 2 | _label = segundo y tercer parámetro }} {{ caso de prueba | _format = celdas | _template1 = frac | _template3 = sfrac | a | _label = parámetro anónimo único, alfabético }} {{ caso de prueba | _format = celdas | _template1 = frac | _template3 = sfrac | 1 | 1 | _label = dos parámetros iguales }} |}

Problema de guión enPlantilla:Caso de prueba nowiki

Esto surgió cuando estaba trabajando en Template:Graphical timeline/testcases . En Special:Permalink/958740301 se puede observar que el parámetro |note3-at=obtiene un valor roto. El primer carácter, guion, es correcto, sin embargo, la primera llave de apertura { de {{Period start}}se convierte en una entidad HTML por alguna razón. Esto da como resultado un error Error de expresión: carácter de puntuación no reconocido "&" en algún lugar profundo dentro de los componentes internos de la plantilla. He agregado un caso de prueba para demostrar el problema en un ejemplo más pequeño . —⁠ andrybak ( discusión ) 13:38, 25 de mayo de 2020 (UTC) [ responder ]

Ver phab:T168759 * Pppery * ha comenzado... 20:45, 25 de mayo de 2020 (UTC) [ responder ]

Algo acaba de cambiar

De ayer a hoy, los cuadros en Template:Spoken Wikipedia/testcases cambiaron de amarillo a verde, se contrajeron e introdujeron un error por el cual ahora no parecen poder insertar archivos de audio correctamente. Sin embargo, no estoy seguro de dónde se realizó la edición que causó esto. ¿Alguien lo sabe? {{u| Sdkb }} discusión 21:20, 9 de julio de 2020 (UTC) [ responder ]

Sdkb , el usuario Izno ha respondido a la solicitud de edición. Eso explicaría el cambio de amarillo a verde en /testcases. Las plantillas {{ Spoken Wikipedia }} y {{ Spoken Wikipedia/sandbox }} ahora producen la misma salida. El reproductor de audio también está roto para mí. —⁠ andrybak ( discusión ) 22:13, 9 de julio de 2020 (UTC) [ responder ]
He cambiado la salida de /sandbox y los reproductores de audio ahora están arreglados. ¿Quizás el reproductor no sobrevive en un estado colapsado? —⁠ andrybak ( discusión ) 22:17, 9 de julio de 2020 (UTC) [ responder ]
Andrybak , mmm, interesante. Acabo de comprobar algunas instancias en vivo y no está causando ningún problema allí. {{u| Sdkb }} discusión 22:18, 9 de julio de 2020 (UTC) [ responder ]
( editar conflicto )

El reproductor de audio está roto, pero el video está bien. —⁠ andrybak ( discusión ) 22:18 9 jul 2020 (UTC) [ responder ]

Sdkb , te sugiero que muevas esta discusión a WP:VPT . El caso de prueba de módulo: plantilla no tiene la culpa, es un problema más amplio. —⁠ andrybak ( discusión ) 22:23, 9 de julio de 2020 (UTC) [ responder ]

¿Cómo especificar el nombre de la página?

Revisé la documentación, pero no pude encontrar una forma de especificar el nombre de la página (palabra mágica PAGENAME) en un caso de prueba de plantilla. Para las plantillas que usan llamadas Wikidata, por ejemplo, la llamada Wikidata verifica PAGENAME y recupera el bit de datos apropiado de la página Wikidata correspondiente. ¿Hay alguna forma de hacer esto? El resultado sería representar la plantilla como aparecería cuando se procesa por Special:ExpandTemplates con el PAGENAME apropiado ingresado en el campo de texto superior. – Jonesey95 ( discusión ) 22:55, 23 de julio de 2020 (UTC) [ responder ]

Respuesta parcial, todavía estoy buscando una respuesta real: una posible solución alternativa es usar |qid=en su cuadro de información. Consulte la Plantilla:Ordination/testcases para ver un ejemplo. – Jonesey95 ( discusión ) 01:23, 3 de agosto de 2020 (UTC) [ responder ]
No creo que esto sea posible. *Pppery* ya ha comenzado... 02:24, 4 de agosto de 2020 (UTC) [ responder ]

Salto de párrafo al utilizar{{caso de prueba en línea}}

Probablemente estoy haciendo algo tonto, pero no puedo entender qué. Estoy usando {{ inline test case }} en la página de casos de prueba de Template:Cite certification y por alguna razón a veces (raramente) obtengo un salto de párrafo adicional entre los resultados. Creé un ejemplo: Template:Cite certification/testcases-example. Me preocupaba que hubiera algo mal con { { Cite certification }} , pero como puede ver en el código del ejemplo, el salto de párrafo no aparece cuando se ejecutan las versiones estables o de sandbox (idénticas). ¿Alguna idea? -- Muhandes ( discusión ) 14:46, 31 de diciembre de 2020 (UTC) [ responder ]

Había un carácter invisible (una marca de izquierda a derecha ) en la página de ejemplo de casos de prueba. Copié toda la página en un editor de texto, le dije que mostrara los caracteres invisibles y la eliminé. – Jonesey95 ( discusión ) 16:51, 31 de diciembre de 2020 (UTC) [ responder ]
Gracias, debo haber perdido cinco horas de mi tiempo buscando esa. Ahora tengo una buena manera de probarla en el futuro. -- Muhandes ( discusión ) 19:36 31 dic 2020 (UTC) [ responder ]

Sandbox2, Test case2 y wrapperConfig

Me gustaría poder usar un segundo sandbox, digamos, 'sandbox2', para permitir la prueba simultánea de diferentes conjuntos de cambios en pistas paralelas para la misma plantilla. Después de haber examinado Module:Template test case , creo que hay un método mejor disponible que el obvio método de fuerza bruta de duplicar la plantilla FOO a FOO2, luego FOO2/sandbox y casos de prueba a FOO2/casos de prueba. Por lo que sé, la clave parece tener algo que ver con wrapperConfig a menos que me equivoque, solo que no veo cómo usarlo y el /doc no tiene mucho que decir al respecto.

Este caso de uso surge ocasionalmente en RL en plantillas complejas que pueden necesitar pruebas extensas de alguna característica, mientras que alguien más desea probar otra característica, o donde se están probando diferentes escenarios. (Para un caso RW del primer tipo, consulte Template talk:Find source#Missing redirect detection bug ). Tengo la sensación de que puedo simplemente crear Template:Find source/sandbox2 con mis cambios, y luego crear una "configuración de contenedor" en algún lugar, y configurarla como param2 para la invocación.

Por ejemplo, ¿puedo simplemente duplicar Módulo:Template test case/config en Plantilla:Find general source/MySandbox2Config, editarlo para configurarlo sandboxSubpage = 'sandbox2',y luego en Plantilla:Find general source/sandbox2 invocarlo de esta manera: {{#invoke:Find sources|Find general sources, MySandbox2Config}}? ¿O estoy malinterpretando cómo se supone que funciona esto y debería volver al método de fuerza bruta? ¿O algo más? Haciendo ping a @ Mr. Stradivarius y Trialpears : .

De cualquier manera, param2 del módulo parece ser una configuración de algún tipo, así que, independientemente de si mis suposiciones anteriores son correctas o incorrectas, sería bueno que alguien pudiera agregar una == Params ==sección a Módulo: Caso de prueba de plantilla/doc para describir qué es este parámetro y cómo usarlo. (por favor, mencióname en la respuesta; ¡gracias!) Responder al icono  Mathglot ( discusión ) 22:28, 25 de diciembre de 2021 (UTC) [ responder ]

@ Mathglot : Puedes usar un segundo sandbox configurando los argumentos |_template1=, |_template2=y |_template3=. Por ejemplo, {{test case|_template1=Find sources|_template2=Find sources/sandbox|_template3=Find sources/sandbox2|Foo}}genera lo siguiente:

{{caso de prueba|_template1=Buscar fuentes|_template2=Buscar fuentes/sandbox|_template3=Buscar fuentes/sandbox2|Foo}}

El módulo está diseñado de modo que el valor predeterminado para _template1 sea la página base de la página actual y el valor predeterminado para _template2 sea su subpágina sandbox. De hecho, si llama al módulo desde Template:Find source/testcases , puede omitir los argumentos |_template1=y |_template2=, y simplemente especificar |_template3=Find sources/sandbox2para obtener los mismos resultados. — Mr. Stradivarius ♪ talk ♪ 01:17, 26 de diciembre de 2021 (UTC) [ responder ]
En cuanto al archivo de configuración, no está pensado para que lo especifiquen los usuarios. Creo que permití que la configuración se pasara a la función principal para que se pueda probar más fácilmente, pero esta capacidad no la utiliza actualmente Module:Template test case/testcases . Probablemente solo la usé en la consola durante el desarrollo inicial. Además, la configuración no se puede pasar desde wikitext; debe pasarse desde otro módulo de Lua. Desde wikitext solo puedes influir en el contenido del primer parámetro (el objeto de marco) a la función llamada desde #invoke; no puedes influir en el contenido de los parámetros posteriores. — Mr. Stradivarius ♪ talk ♪ 01:45, 26 de diciembre de 2021 (UTC) [ responder ]
Gracias, Sr. Stradivarius , esto fue muy útil. Mathglot ( discusión ) 17:26 26 dic 2021 (UTC) [ responder ]

formato=columnas + híbrido en línea

Tengo un montón de casos de prueba para una plantilla que acepta muchos parámetros complicados, pero cuyo resultado es un texto relativamente corto. Piensa en {{ cite book }} y estarás en el rango correcto. Quiero ver el código en la parte superior de un bloque nowiki como me da o , pero me gustaría ver el resultado organizado verticalmente como me da.{{test case nowiki|format=columns}}|format=rows{{test case nowiki|format=inline}}

Algo como:

¿Alguien interesado? ¿ Señor Stradivarius ? -- Xover ( discusión ) 08:45 13 ene 2023 (UTC) [ responder ]

{{ Tabla de casos de prueba }} con |_format=? – Jonesey95 ( discusión ) 22:26, ​​14 de enero de 2023
Ejemplo:
{{ código }}
{{código|foo}}

foo

foo

¿Qué te parece? Puedes modificar los parámetros del guión bajo a tu gusto. – Jonesey95 ( discusión ) 23:34 14 ene 2023 (UTC) [ responder ]
Gracias. Es una buena opción, pero prefiero la interfaz de {{ test case nowiki }} para esto (es más clara y tiene menos problemas y cosas que pueden salir mal al convertir algo que se encuentra en la naturaleza en un caso de prueba). -- Xover ( discusión ) 19:33, 15 de enero de 2023 (UTC) [ responder ]

Uso de _before y _after

Estoy intentando usar el |_before=parámetro, principalmente para tener algo para colgar plantillas que crean referencias en superíndice, etiquetas y ese tipo de cosas, para que no parezcan aisladas en el espacio. Lo que me gustaría ver en este ejemplo es algo como esto:

Algún texto para colgar una etiqueta. [ cita requerida ]

Aquí está mi caso de prueba, usando |_before=:

{{ Se necesita cita }}

Algún texto para colgar una etiqueta. [ cita requerida ]

{{ Se necesita cita/sandbox }}

Algún texto para colgar una etiqueta. [ cita requerida ]

¿Estoy haciendo algo mal? ¿Por qué no se repite el texto "antes"? Mathglot ( discusión ) 04:29 26 ene 2023 (UTC) [ responder ]

@ Mathglot : No estás haciendo nada malo. Parece que la opción _before (y _after) no se implementó para todos los métodos de render (_format) (hay 5, que son columnas, filas, en línea, celdas y predeterminado; solo se consideran columnas y celdas _before, y tu ejemplo se renderiza en predeterminado ya que no se especificó nada). He implementado el código en los otros formatos de render, por lo que debería comenzar a mostrarse ahora. Aidan9382 ( discusión ) 07:10, 26 de enero de 2023 (UTC) [ responder ]
Aidan9382 ¡Y, de hecho, lo es! Noté que funcionaba en una de mis páginas de prueba, incluso antes de ver que el icono de alerta de notificación cambiaba de color. Si fuera más rápido, tendría que darte la estrella de barnstar más rápida que la luz ; ¡muchas gracias! (Para los curiosos: el ejemplo anterior solía mostrar solo etiquetas y nada de texto; pero desde la solución de Aidan, ahora funciona correctamente). Mathglot ( discusión ) 07:21, 26 de enero de 2023 (UTC) [ responder ]

Uso de plantillas cuando no hay sandbox

@ Frietjes , con respecto a esta edición , ¿deberíamos realizar algún cambio en {{ Test case }} para manejar mejor las instancias cuando se usa cuando no hay un entorno limitado? {{u| Sdkb }} talk 19:42, 19 de mayo de 2023 (UTC) [ reply ]

Quizás SDKB , o simplemente podrías crear una versión sandbox. Frietjes ( discusión ) 19:43 19 may 2023 (UTC) [ responder ]
Cierto. En ese caso, solo buscaba ver si la plantilla podía manejar un caso de uso en particular, no hacer cambios en ella, así que todo lo que necesitaba era la página de casos de prueba. {{u| Sdkb }} talk 19:46, 19 de mayo de 2023 (UTC) [ reply ]
Siempre hago clic en el enlace "duplicar" en el documento de plantilla cuando el entorno de pruebas no existe. Se necesitan dos clics en total para crear un entorno de pruebas que funcione. – Jonesey95 ( discusión ) 15:14, 21 de mayo de 2023 (UTC) [ responder ]

Uso de syntaxhighlight cuando se utiliza _showcode

He cambiado las <code>...</code>etiquetas a <syntaxhighlight>...</syntaxhighlight>etiquetas cuando |_showcode=se usa. Sandbox y Diff. Gonnym ( discusión ) 18:04 23 may 2023 (UTC) [ responder ]

Mmm. ¿Tendría sentido que se aceptara, al menos inicialmente, agregando un nuevo |format=syntaxhighlight(y/o |format=syntaxtal vez) en su lugar? ¿Hay casos límite extraños en los que funciona, pero podría fallar? FeRDNYC ( discusión ) 04:00, 15 de julio de 2023 (UTC) [ responder ]<code><nowiki>...</nowiki></code><syntaxhighlight lang="mediawiki" inline>...</syntaxhighlight>

Inconsistencia entre el caso de prueba nowiki y otros

Entonces, en la mayoría de las plantillas de casos de prueba, se pasan argumentos al código del caso de prueba precedidos por guiones bajos, y los argumentos reales a la plantilla que se está probando se pasan como de costumbre, por ejemplo:

{{ Caso de prueba | _collapsible =| _showcode =| _title = Algún caso de prueba | _template1 = Código | 1 = wikitable }}

Vale, genial. Pero entonces llega el momento en el que los argumentos con guión bajo no funcionan y hay que utilizar argumentos sin guión bajo:{{Test case nowiki}}

MALO

{{ Caso de prueba nowiki | _collapsible =| _showcode =| _title = Algún caso de prueba | _template1 = Código |< nowiki > {{__TEMPLATENAME__|1=wikitabla}} </ nowiki > }}

Obras

{{ Caso de prueba nowiki | colapsable =| showcode =| título = Un caso de prueba | plantilla1 = Código |< nowiki > {{__TEMPLATENAME__|1=wikitabla}} </ nowiki > }}

Mi pregunta es, ¿por qué ? Si estas plantillas son una "familia" y se usan juntas con tanta frecuencia, ¿no tiene sentido que tomen el mismo conjunto de argumentos que todas las demás? ¿Incluso si no es estrictamente necesario que estén precedidas por guiones bajos? Haría que la conversión de casos de prueba entre las versiones no-nowiki y no-wiki fuera mucho más rápida y conveniente. ¿Soy realmente la única persona que se encuentra haciendo eso con bastante frecuencia? FeRDNYC ( discusión ) 06:33, 15 de julio de 2023 (UTC) [ responder ]{{Test case nowiki}}{{Test case}}

La razón técnica de esto se reduce a este fragmento de código , en el que el contenedor nowiki tiene sus argumentos hechos de manera diferente. La razón por la que creo que esto se hizo en la práctica es porque la única razón por la que se usan los guiones bajos en la versión {{ Test case }} es porque hay que proporcionar los argumentos reales, por lo que anteponer las opciones con _ evita conflictos. Dado que la versión nowiki solo toma el parámetro 1, no necesitaba los guiones bajos. Aidan9382 ( discusión ) 06:57, 15 de julio de 2023 (UTC) [ responder ]
*asiente* Entiendo perfectamente por qué se necesitan los argumentos con el prefijo _ para las otras plantillas y por qué se puede prescindir de ellos. Pero en aras de... no sé, coherencia, armonía, lo que sea, parece que se podría incluir esta lógica:{{Test case nowiki}}bridge.nowiki
 opciones  locales =  {} para  k ,  v  en  pares ( args )  hacer local  underscoreOptionKey  =  type ( k )  ==  'string'  y  k : match ( '^_(.*)$' ) si  underscoreOptionKey  entonces opciones [ underscoreOptionKey ]  =  v de lo contrario opciones [ k ]  =  v fin fin código local  = opciones.código o opciones [ 1 ] invocaciónObj local = NowikiInvocation.new ( código , cfg ) opciones.código = nil opciones [ 1 ] = nil -- Supongamos que queremos ver el código tal como ya lo pasamos . opciones.showcode = opciones.showcode o verdadero testCaseObj local = TestCase.new ( invocaciónObj , opciones , cfg )                     
...De modo que, por ejemplo |_collapsible=, y |collapsible=son equivalentes, lo que significa que el usuario tiene la opción de pasar exactamente los mismos argumentos que todas las demás plantillas del grupo. FeRDNYC ( discusión ) 18:44, 15 de julio de 2023 (UTC) [ responder ]
Es justo, ya lo implementé aquí . Cualquiera de las dos opciones debería funcionar ahora. Aidan9382 ( discusión ) 19:04, 15 de julio de 2023 (UTC) [ responder ]
Este cambio parece haber causado, o puede haber causado, un error en algunos casos de prueba. El que me llamó la atención es {{ Circular reporting/testcases }} , donde se expone un código de "span title". Mi suposición es que un signo igual representado en _title puede estar causando el problema. – Jonesey95 ( discusión ) 21:15, 16 de julio de 2023 (UTC) [ responder ]
Este cambio no debería haber causado el problema (y no lo ha hecho), ya que solo afecta a cómo se procesan los argumentos en {{ Test case nowiki }} y el comportamiento normal de {{ Test case }} no cambia. Sospecho que ese caso de prueba específico ha estado roto por un tiempo. Lo he arreglado aquí y aquí y ahora debería funcionar bien. Aidan9382 ( discusión ) 06:04, 17 de julio de 2023 (UTC) [ responder ]
Extraño. Me pregunto por qué esa página apareció en el informe de errores justo después del cambio y por qué este módulo aparece en Cambios relacionados para la página de casos de prueba. También es extraño que este módulo aparezca en "Páginas transcluidas a la versión actual de esta página" cuando editas la página de casos de prueba. Tal vez sea una coincidencia. PD: He modificado ambos cambios, ya que uno de ellos provocó errores de Linter en otros lugares. – Jonesey95 ( discusión ) 12:52, 17 de julio de 2023 (UTC) [ responder ]
También es extraño que este módulo aparezca en "Páginas transcluidas en la versión actual de esta página" cuando editas la página de casos de prueba ; esa parte tiene sentido, ya que {{ Test case }} usa este módulo, al igual que {{ Test case nowiki }} y un par de otras plantillas relacionadas. En cuanto a por qué fue necesario editar esto para que apareciera en un informe de errores, ni siquiera yo estoy seguro de eso. Definitivamente no cambió el comportamiento, así que tal vez este cambio solo provocó que se purgara y apareciera en el informe. ¿Podría haber habido un cambio reciente en el informe sobre lo que recoge? Aidan9382 ( discusión ) 13:00, 17 de julio de 2023 (UTC) [ responder ]
Muchas, muchas gracias, Aidan9382 , por poner esto en práctica. FeRDNYC ( discusión ) 14:52 20 jul 2023 (UTC) [ responder ]

Solicitud de edición ampliada, confirmada y protegida el 17 de octubre de 2023

Por favor, elimine la n de la palabra templaten en la línea número 29. Nishimoto, Gilberto Kiyoshi ( discusión ) 16:38 17 oct 2023 (UTC) [ responder ]

 Hecho Aidan9382 ( discusión ) 16:42 17 oct 2023 (UTC) [ responder ]

¿Recortar las nuevas líneas de entrada?

Mucha gente usa {{ test case nowiki }} de la siguiente manera por estética:

{{ caso de prueba nowiki |< nowiki >{{plantilla de envoltura superior}}{{__NOMBREDETEMPLATE}}{{plantilla de envoltura inferior}}</ nowiki >}}

Esto hace que se inserte una nueva línea adicional antes y después de la parte de la plantilla dentro del marco del caso de prueba. Sería fantástico si este módulo recortara las nuevas líneas de la entrada. Aaron Liu ( discusión ) 15:52, 8 de agosto de 2024 (UTC) [ responder ]

¿Quieres decir recortar las nuevas líneas de una manera que haría...
{{ caso de prueba nowiki |< nowiki >{{plantilla de envoltura superior}}{{__NOMBREDETEMPLATE}}{{plantilla de envoltura inferior}}</ nowiki >}}
equivalente a
{{ caso de prueba nowiki |< nowiki > {{plantilla de contenedor superior}}{{__NOMBREDETEMPLATE}}{{plantilla de envoltura inferior}} </ nowiki >}}
? Es decir, recortar las nuevas líneas que están justo al lado del par de <nowiki>...</nowiki>etiquetas externo. —⁠ andrybak ( discusión ) 22:47 8 ago 2024 (UTC) [ responder ]
Sí, gracias. Aaron Liu ( discusión ) 23:28 8 ago 2024 (UTC) [ responder ]

Tener múltiples __TEMPLATENAME__

Quería evaluar el interés en la posibilidad de ampliar el código del módulo para que (opcionalmente) admita la prueba de código nowiki que contenga múltiples sustituciones de nombres de plantilla. El caso de uso principal sería probar plantillas que solo son útiles en conjunto con otras, como (por ejemplo) .{{archive top}}

Ciertamente es posible probar esa plantilla de forma aislada, utilizando una transclusión en Template:Archive top/testcases como:{{Test case nowiki}}

{{ Caso de prueba nowiki |< nowiki >{{__NOMBREDEPLANTILLA__}}{{Lorem ipsum}}{{archivo inferior}}</ nowiki >}}

...Eso te proporcionará una prueba de vs. perfectamente buena .{{archive top}}{{archive top/sandbox}}

Pero puede ser útil, a veces, emparejar lo probado con su correspondiente , para cuando se están probando cambios que se realizan en conjunto.{{archive top}} {{archive bottom}}

Para satisfacer esas necesidades, es posible que el módulo deba admitir algo como lo siguiente:

{{ Caso de prueba nowiki | template1name1 = archivo superior | template1name2 = archivo inferior |< nowiki >{{__NOMBRETEMPLATE1__}}{{Lorem ipsum}}{{__NOMBRETEMPLATE2__}}</ nowiki >}}

En mi opinión, esto permitiría probar la combinación de y contra la combinación de y (a menos que se especifiquen plantillas diferentes para y ).{{archive top}}{{archive bottom}}{{archive top/sandbox}}{{archive bottom/sandbox}}|template2name1=|template2name2=

Al igual que con el manejo de las plantillas de citas de |author=, |first=, |last=, etc.:

  1. |template1=se convertiría efectivamente en un alias para |template1name1=(con el mismo valor predeterminado de ){{#titleparts: {{PAGENAME}}| -1}}
  2. Lo mismo para |template2=y |template2name1=(nuevamente con el mismo valor predeterminado ){{{template1name1}}}/sandbox
  3. |template3=== |template3name1=, etc.
  4. __TEMPLATENAME__sería intercambiable con __TEMPLATENAME1__.

Por lo tanto, utilizar solo |template1name1=, |template2name1=, y __TEMPLATENAME1__sería equivalente a la sintaxis actual, al igual que utilizar solo __TEMPLATENAME1__ y dejar los parámetros de selección de plantilla en sus valores predeterminados.

... ¿Potencialmente útil? ¿Algún defecto que he pasado por alto en la funcionalidad propuesta? ¿O simplemente no vale la pena el esfuerzo, independientemente de si funcionaría o no? FeRDNYC ( discusión ) 18:21 29 ago 2024 (UTC) [ responder ]

Desde entonces, decidí que los nombres de los parámetros |template1name1=y |template1name2=resultan extraños y confusos. Deberían ser |template1name1=y |template2name1=, en todo caso, pero eso no funcionará porque |template1=y |template2=son parámetros existentes que tienen definiciones diferentes e incompatibles en el código.
Sin embargo, una llamada que utiliza eg resulta confusa. ( No|template1name1=archive top|template1name2=archive bottom son nombres diferentes para la primera plantilla, son plantillas diferentes que se utilizarán en la primera representación del caso de prueba).
Entonces, para evitar esa confusión, creo que sería mejor hacer |templatename1=el nuevo equivalente para |template1=, en su lugar. La segunda plantilla a utilizar para representar el caso de prueba sería simplemente |templatename2=. |template2name1=seguiría siendo equivalente a |template2=, y |template2name2=seguiría siendo el equivalente correspondiente a |templatename2=para la segunda representación del caso. (Aunque a menudo no se especificarían y se utilizarían por defecto las /sandboxversiones de las plantillas especificadas para |templatename1=.. . La noción de un parámetro " " sería una etiqueta de compatibilidad obsoleta — los identificadores "adecuados"/"preferidos" serían ... . Lo que, convenientemente, también correspondería exactamente a las cadenas de marcador de posición ... utilizadas para insertarlas en el código nowiki.|templatenameN={{{template1}}}{{{templatename1}}}{{{templatenameN}}}__TEMPLATENAME1____TEMPLATENAMEN__
La otra opción sería |case1template1=... para la primera representación, luego ... para las versiones que normalmente se usan por defecto , y así sucesivamente... Pero ese es un cambio mucho más grande y disruptivo que no vale la pena. (También cambia el significado de "template1" vs. "template2", en comparación con su definición actual. Por lo tanto, sigue siendo potencialmente confuso). FeRDNYC ( discusión ) 03:47 7 oct 2024 (UTC) [ responder ]|case1templateN=|case2template1=|case2templateN=/sandbox

¿Por qué coincidencias visuales en lugar de coincidencias de cadenas?

Perdón por esta pregunta que debe ser tonta, pero ¿por qué esta herramienta requiere una comparación visual en lugar de hacer una comparación y emitir un mensaje de error de prueba? Johnjbarton ( discusión ) 22:19 6 oct 2024 (UTC) [ responder ]

No estoy seguro de entender: una comparación de cadenas de la salida es precisamente lo que hace la función del módulo; la plantilla (o cualquiera de las plantillas, con set) incluso colapsará automáticamente cualquier caso de prueba donde los resultados sean los mismos. (Además de colorear la barra superior del cuadro colapsable en verde (misma salida) frente a amarillo (diferencias detectadas)).TestCase:templateOutputIsEqual(){{Collapsible test case}}|_collapsible=yes
Sin embargo, a menudo ocurre que las diferencias entre la versión principal de una plantilla y su versión sandbox son intencionales (estarán presentes siempre que se realice un desarrollo en la versión sandbox del código, por ejemplo). Por lo tanto, caracterizar las diferencias como "¡FALLO EN LA PRUEBA!" no es estrictamente preciso, ya que tener el mismo resultado no es "éxito" y tener un resultado diferente no es "fracaso". El objetivo, cuando hay diferencias, es demostrar/examinar cómo/si la versión sandbox ha mejorado el resultado, en comparación con el código en vivo. (Si es así, se puede realizar una solicitud para transferir el código sandbox a la plantilla en vivo. En ese momento, las diferencias desaparecen). FeRDNYC ( discusión ) 23:38, 6 de octubre de 2024 (UTC) [ responder ]
(Por lo tanto, los casos de prueba de plantilla no son como las pruebas unitarias de programación tradicionales , donde el resultado de algún código se compara con un valor esperado conocido y cualquier desviación representa una falla en el rendimiento esperado. Los casos de prueba de plantilla comparan y contrastan dos versiones de la misma plantilla, y cualquier diferencia en el resultado es interesante como un medio para evaluar los cambios de código que crearon esas diferencias). FeRDNYC ( discusión ) 23:51, 6 de octubre de 2024 (UTC) [ responder ]
¡Gracias! Lo siento, solo leí hasta los casos de prueba colapsables y me detuve, porque estaba lejos de querer colapsar los casos de prueba. No vi cómo se alertan los errores. Johnjbarton ( discusión ) 00:01, 7 de octubre de 2024 (UTC) [ responder ]

Casos de prueba vacíos

¿Alguien podría darme una pista de por qué al usar esta plantilla en una wiki local no se muestran las tablas de comparación como en enwiki? He migrado los mismos módulos y el mismo código, pero no se muestra nada, solo un texto: lt:Template:Infolentelė/testcases Zygimantus ( discusión ) 21:02, 13 de octubre de 2024 (UTC) [ responder ]

Haz clic en el triángulo que aparece junto a "Straipsnyje naudojami šablonai:" para ver las plantillas que se solicitan. Es posible que tengas que crear una o más de las plantillas rojas para que funcione esa página. – Jonesey95 ( discusión ) 00:36 15 oct 2024 (UTC) [ responder ]
Sí, ya lo pensé, tengo otra página: lt:Šablonas:Sąrašas be punktų/testcases para eso, esta es mínima y no tiene enlaces rojos, aún no se ve ninguna comparación, ¿quizás se usa algún tipo de gadget o complemento desconocido? Zygimantus ( discusión ) 11:00, 15 de octubre de 2024 (UTC) [ responder ]
Entonces estoy atascado. Tal vez algo en uno de los módulos o plantillas dependa de un nombre en inglés de una página o espacio de nombres, pero eso es una suposición. – Jonesey95 ( discusión ) 12:52, 17 de octubre de 2024 (UTC) [ responder ]
Probaré algo, es una pena que no se vea ningún mensaje de error o algo así, quizás entonces esté relacionado con los estilos CSS... Zygimantus ( discusión ) 21:15, 18 de octubre de 2024 (UTC) [ responder ]
@ Zygimantus Para empezar, creo que necesitas configurar https://lt.wikipedia.org/wiki/Module_talk:Template_test_case/Module:Template_test_case/config para la wiki, en particular, la wrapperstabla que el módulo usa para mapear los nombres de las plantillas a las funciones y argumentos que deben usar.
Si observa, todas las plantillas relacionadas con el caso de prueba Módulo:Plantilla contienen el mismo código:
{{ #invoke : Caso de prueba de plantilla | principal }}
Esto se debe a que, cuando el módulo ve que se lo está invocando desde, por ejemplo, Template:Testcase table , la wrapperstabla le indica que agregue automáticamente _format = 'columns'los argumentos. Pero en su wiki, el módulo nunca se invocará desde Template:Testcase table , se invocará desde Šablonas:Testcase table , y no hay un mapeo de contenedor para ese nombre de página de plantilla . Esa es, al menos, la razón por la que sus casos de prueba se están formateando como filas en lugar de columnas.
Quizás no sea la cuestión principal , pero definitivamente es un problema.
También te falta el módulo:Suppress category , del que depende tu Šablonas:Suppress category . (Lo descubrí editando la página de casos de prueba, seleccionando "Plantillas usadas" en el menú de hamburguesas y buscando enlaces rojos en la lista resultante, una forma práctica de eliminar dependencias rotas. Hay algunas otras). FeRDNYC ( discusión ) 06:09, 25 de octubre de 2024 (UTC) [ responder ]
@ FeRDNYC : gracias. Tuve que traducir el texto de "Plantilla" en esa página de configuración. Además, no sabía que en las wikis locales estas páginas no son las mismas: lt:Šablonas:Testcase table y lt:Template:Testcase table. Por ejemplo, si haces clic en esos enlaces, te dirigirán a la misma página, pero en la página del módulo no funciona así, supongo. Zygimantus ( discusión ) 13:06, 25 de octubre de 2024 (UTC) [ responder ]
@ Zygimantus Sí, el problema es que lt:Template:Testcase table actúa como un alias para el nombre canónico, lo que funciona bien, ya que termina en el mismo lugar. Pero no funciona a la inversa, por lo que cuando el módulo pregunta "¿Desde qué plantilla me están llamando?", la respuesta nunca será "Template:Testcase table"; así no se llama la página. FeRDNYC ( discusión ) 16:37, 25 de octubre de 2024 (UTC) [ responder ]