Necesito algo muy simple como "ejecutar este comando y tener éxito si hay 'esta cadena' en algún lugar de la salida de la consola, de lo contrario, fallaría". ¿Hay tal herramienta?¿Existe un marco de prueba de unidad para los archivos por lotes de Windows?
Respuesta
No es que yo sepa, pero puede escribir fácilmente uno en otro script por lotes.
call TestBatchScript.cmd > console_output.txt
findstr /C:"this string" console_output.txt
establecerá% errorlevel% en cero si se encuentra la cadena, y distinto de cero si la cadena está ausente. Luego puede probarlo con IF ERRORLEVEL 1 goto :fail
y ejecutar el código que desee después de la etiqueta :fail
.
Si desea una evaluación compacta de varias de tales cadenas, puede utilizar || Sintaxis:
call TestBatchScript.cmd > console_output.txt
findstr /C:"teststring1" console_output.txt || goto :fail
findstr /C:"teststring2" console_output.txt || goto :fail
findstr /C:"teststring3" console_output.txt || goto :fail
findstr /C:"teststring4" console_output.txt || goto :fail
goto :eof
:fail
echo You Suck!
goto :eof
O bien, puede ir aún más lejos y leer la lista de cadenas de un archivo
call TestBatchScript.cmd > console_output.txt
set success=1
for /f "tokens=*" %%a in (teststrings.txt) do findstr /C:"%%a" console_output.txt || call :fail %%a
if %success% NEQ 1 echo You Suck!
goto :eof
:fail
echo Didn't find string "%*"
set success=0
goto :eof
He creado una biblioteca para las pruebas unitarias ventanas lote. Actualmente está en su infancia, pero funciona y lo uso.
Se llama cmdUnit y puede ser descargado desde el sitio del proyecto en bitbucket:
utilizo lo siguiente para filter comandos del tipo:
Para archivo por lotes foo.cmd
, cree la siguiente archivos:
foo.in.txt
:
hola
foo.expected.txt
:
hola mundo
foo.test.cmd
:
@echo off
echo Testing foo.cmd ^< foo.in.txt ^> foo.out.txt
call foo.cmd <foo.in.txt> foo.out.txt || exit /b 1
:: fc compares the output and the expected output files:
call fc foo.out.txt foo.expected.txt || exit /b 1
exit /b 0
A continuación, ejecute foo.test.cmd
- 1. Marco de prueba de unidad para Vala
- 2. Actualización de archivos por lotes de DOS para Windows
- 3. ¿Qué marco de prueba de unidad?
- 4. determinar si existe una unidad flash de un archivo por lotes sin mensajes de error
- 5. ¿Cuál es un buen marco de prueba de unidad para los proyectos de Common Lisp?
- 6. ¿Qué marco de prueba de unidad libre para C#?
- 7. ¿Qué marco de prueba de unidad usar para el desarrollo de C en Windows?
- 8. Sugiera un marco de prueba de unidad JPA
- 9. Script por lotes de Windows para mostrar archivos ocultos por virus
- 10. Archivo de proceso por lotes de Windows - Concatene todos los archivos en los subdirectorios
- 11. ¿Existe un marco de pruebas unitarias para GNU?
- 12. Escapar símbolos en archivos por lotes de Windows
- 13. Scripts Scala en archivos por lotes de Windows
- 14. Dónde colocar los archivos de prueba para la prueba unitaria
- 15. ¿Qué marco de prueba de la unidad C?
- 16. Prueba de la unidad de WPF GUI marco
- 17. Archivo por lotes de Windows: ¿cómo recorrer los archivos en un directorio?
- 18. ¿Cómo eliminar los archivos N de tipo X de las subcarpetas Y de un archivo por lotes de Windows?
- 19. Ejecutar un script por lotes de Windows para iniciar varios archivos
- 20. ¿Cómo concatenar cadenas en un archivo por lotes de Windows?
- 21. Asignar una unidad de red sin codificar una letra de unidad en un archivo por lotes
- 22. Diseñando un Marco de Prueba de Estrés
- 23. Script de archivo por lotes para eliminar caracteres especiales de nombres de archivos (Windows)
- 24. copia por lotes sólo los archivos modificados
- 25. Cambio de nombre de archivos por lotes en un directorio
- 26. Prueba de Unidad de Curado
- 27. Límites de tamaño de línea y archivo para archivos por lotes de Windows
- 28. Sockets de prueba de unidad
- 29. Marco de prueba GUI automatizado para Android
- 30. de archivos por lotes para escribir al visor de eventos
Véase también http://stackoverflow.com/questions/940497/how-to-do-tdd- y-unit-testing-in-powershell – TrueWill