Introduccion a Powershell
Powershell es un framework de automatización de tareas que viene con una línea de comandos que posee su propio lenguaje de script; Powershell esta construido sobre .NET Framework y posee además acceso completo a COM y WMI por lo cual tendremos bastante poder en nuestras manos al usar Powershell.
Powershell la estar escrito sobre .NET tiene la posibilidad de consumir objetos .NET, por lo tanto mucho del conocimiento adquirido para desarrollar con el framework .NET lo podremos reutilizar.
Como se puede ver, instanciamos un objeto del tipo System.Diagnostics.ProcessStartInfo ($startInfo), luego asignamos los valores a sus propiedades respectivas para que después procedamos a crear otro objeto pero del tipo System.Diagnostics.Process al cual le asignaremos a su propiedad StartInfo el objeto que previamente creamos. Por ultimo procederemos a inicial el procesos llamando al método Start().
Para probarlo como funciona nuestro script vamos a ejecutar la aplicación de consola de NUnit, para lo cual vamos a agregar a nuestro script las siguientes variables:
La variable $outputFile sirve para para indicar donde generara su archivo de salida de NUnit, $filePath es la ubicación del ensamblado que contiene los Test y $testName guarda el nombre completo del Test que deseamos probar.
Además de la línea de comandos, Powershell viene con algo parecido a un IDE, denominado ISE (Integrated Scripting Environment) que facilita de gran manera la creación de Scripts. Pero si deseamos un IDE mas completo para la creación de Scripts tenemos la herramienta PowerGUI que se la pueden descargar de manera gratuita de http://powergui.org/index.jspa
Powershell la estar escrito sobre .NET tiene la posibilidad de consumir objetos .NET, por lo tanto mucho del conocimiento adquirido para desarrollar con el framework .NET lo podremos reutilizar.
Ya con las herramientas instaladas, hagamos un pequeño script que ejecute un programa de consola y que nos muestre el resultado en pantalla, por lo tanto crearemos una función llamada RunProcess que reciba como parámetros la ruta del ejecutable y los argumentos con los que deseamos que se ejecute el programa:
function
RunProcess() { param ([string]$exe = $(Throw "An executable must be specified"),[string]$arguments ) $startInfo= new-Object System.Diagnostics.ProcessStartInfo $startInfo.FileName = $exe $startInfo.Arguments=$arguments $startInfo.RedirectStandardOutput = $true $startInfo.UseShellExecute = $false; $process = New-Object System.Diagnostics.Process $process.StartInfo = $startInfo $process.Start() $result = $process.StandardOutput.ReadToEnd() $result }
Como se puede ver, instanciamos un objeto del tipo System.Diagnostics.ProcessStartInfo ($startInfo), luego asignamos los valores a sus propiedades respectivas para que después procedamos a crear otro objeto pero del tipo System.Diagnostics.Process al cual le asignaremos a su propiedad StartInfo el objeto que previamente creamos. Por ultimo procederemos a inicial el procesos llamando al método Start().
Para probarlo como funciona nuestro script vamos a ejecutar la aplicación de consola de NUnit, para lo cual vamos a agregar a nuestro script las siguientes variables:
$outputFile ='C:\Users\gustavo.torrico\Desktop\out.xml' $application = 'C:\Program Files\NUnit 2.6\bin\nunit-console.exe' $filePath ='C:\Users\gustavo.torrico\Desktop\assemblyName.dll' $testName ='namespace.className.testName'
La variable $outputFile sirve para para indicar donde generara su archivo de salida de NUnit, $filePath es la ubicación del ensamblado que contiene los Test y $testName guarda el nombre completo del Test que deseamos probar.
Ahora si lo hacemos correr podremos ver como ejecuta el test:
Suerte!
Comentarios
Publicar un comentario