Difference between revisions of "GXUnit User Guide"
(Created page with "GXUnit User Guide == Introduction == This document aims at displaying the core features available through GXUnit, the Genexus' unit testing tool. In the following page, ...") |
|||
Line 7: | Line 7: | ||
This document aims at displaying the core features available through GXUnit, the Genexus' unit testing tool. | This document aims at displaying the core features available through GXUnit, the Genexus' unit testing tool. | ||
− | In the following page, you will find the following: | + | In the following page, you will find the following How to's: |
− | * | + | *Installing GXUnit |
− | * | + | *Creating your unit tests |
− | * | + | *Running tests in an interactive manner and seeing the results |
− | * | + | *Running your tests with a batch (msbuild) |
== Installation == | == Installation == | ||
Line 40: | Line 40: | ||
− | === | + | === Initializing GXUnit === |
− | + | In order to initialize GXUnit, it must be done from an option available in the GXUnit menu. By proceeding in that way, the set of necessary objects for employing them with the tool will be created. The aforementioned objects are placed in a directory named GXUnit, underneath the the objects' tree. | |
[[image:GXunit_create.png|center]] | [[image:GXunit_create.png|center]] | ||
− | === | + | === Deleting a GXUnit object === |
− | + | There is a feature available in the menu, which deletes all of the objects related with GXUnit, including all of the objects of the type TestCase as well as Suites having been created. | |
Line 59: | Line 59: | ||
− | + | In order to work with the tool, 'tool window GXUnit' must be enabled. From that tool, we may see all the test suites, as well as all of the test cases which were defined. | |
Line 65: | Line 65: | ||
− | == Suite | + | == Test Suite == |
Line 78: | Line 78: | ||
− | == | + | == Test Case == |
Line 93: | Line 93: | ||
− | === | + | === GeneXus Procedures Testing === |
Line 101: | Line 101: | ||
− | === | + | === Transactions Testing (BC) === |
Line 116: | Line 116: | ||
[[image:GXunit_assertBC.png|center]] | [[image:GXunit_assertBC.png|center]] | ||
− | === | + | === Data Providers Testing === |
Line 138: | Line 138: | ||
− | === | + | === Running Test Cases === |
Line 149: | Line 149: | ||
− | === | + | === Seeing the Results === |
Line 156: | Line 156: | ||
[[image:GXunit_results.png|center]] | [[image:GXunit_results.png|center]] | ||
− | == | + | == Explorting and Importing Test Cases as well as Results == |
Line 162: | Line 162: | ||
− | == | + | == Running tests using MSBuild tasks == |
Revision as of 19:53, 20 October 2013
GXUnit User Guide
Contents |
Introduction
This document aims at displaying the core features available through GXUnit, the Genexus' unit testing tool.
In the following page, you will find the following How to's:
- Installing GXUnit
- Creating your unit tests
- Running tests in an interactive manner and seeing the results
- Running your tests with a batch (msbuild)
Installation
GXUnit is free and can be downloaded from GeneXus' marketplace.
Installer
Next you will be shown with the necessary steps for installing GXUnit.
Installer windows:
- Welcome screen
- License agreement
- Selecting your GeneXus installation
- Ready for installing it
En esta pantalla se listan todas las instalaciones de GeneXus detectadas por el instalador. Si su instalación de GeneXus no se encuentra en la lista puede seleccionar a mano la carpeta donde se encuentra el archivo GeneXus.exe
Initializing GXUnit
In order to initialize GXUnit, it must be done from an option available in the GXUnit menu. By proceeding in that way, the set of necessary objects for employing them with the tool will be created. The aforementioned objects are placed in a directory named GXUnit, underneath the the objects' tree.
Deleting a GXUnit object
There is a feature available in the menu, which deletes all of the objects related with GXUnit, including all of the objects of the type TestCase as well as Suites having been created.
Tool window GXUnit
In order to work with the tool, 'tool window GXUnit' must be enabled. From that tool, we may see all the test suites, as well as all of the test cases which were defined.
Test Suite
Una suite de pruebas tiene la funcionalidad de agrupar cierto conjunto de Casos de prueba según el criterio del usuario. Para crear una nueva Suite de Pruebas se debe hacer click derecho sobre una suite ya creada o sobre cualquier lugar de la tool window GXUnit para crear una Suite del primer Nivel.
Luego de seleccionar Nueva Suite se pide el nombre de la misma y al ingresarlo se crea una nueva Folder GeneXus bajo la estructura Objects/GXUnitSuites.
Test Case
Para crear un nuevo Caso de Prueba se presiona Click derecho en una Suite y se selecciona Nuevo TestCase. En el cuadro de dialogo de nuevo objeto GeneXus se debe seleccionar el objeto TestCase y como Folder queda seleccionada la Suite elegida.
Al crear un nuevo objeto de este tipo se pregunta a qué objeto está asociado. En esta versión se permiten seleccionar objetos Procedure, DataProvider o Transaction.
El objeto TestCase tendrá un editor donde se podrá utilizar la sintaxis del objeto Procedimiento para llamar a cualquier otro objeto GX, y realizar las comparaciones llamando a los objetos de tipo Assert que se describen más adelante. Al crearse un caso de prueba se genera automáticamente código GeneXus por defecto donde se llama al objeto a probar y se realizan asserts para evaluar los resultados de dicha llamada. El objetivo es modificar este código para que se adapte a las necesidades del usuario.
GeneXus Procedures Testing
Para el caso de que el objeto asociado al caso de prueba sea un Procedimiento se crea una variable por cada una que se encuentre en la regla “Parm” del procedimiento a probar y según su tipo, si es de entrada o entrada/salida se inicializa con un valor por defecto o si es de salida o entrada/salida se evalúa con una llamada a un Assert (según el tipo).
Transactions Testing (BC)
Al crear un nuevo caso de prueba asociado a una transacción con la propiedad Business Component se genera código genexus por defecto de la siguiente manera:
- Se define una variable del tipo de la transacción BC
- Inicializa con un valor por defecto todos los atributos
- Guarda los datos (save del BC)
- Carga los datos (load del BC)
- Se realiza un assert para cada mensaje de la Transacción
- Se realiza un assert por cada atributo del Business Component
Data Providers Testing
Al crear un nuevo caso de prueba asociado a un Data Provider se genera código genexus por defecto de la siguiente manera:
- Se inicializan los parámetros de entrada del DP
- Se invoca al DP
- Se inicializa el resultado esperado (BC o SDT)
- Se realiza un AssertStringEquals para comparar el Output esperado con el obtenido
Asserts
Los métodos de tipo Assert son utilizados para comparar los resultados de la ejecución de objetos bajo prueba con los resultados que se esperan de dichos objetos. Fueron implementados como Procedimientos GeneXus. Se proveerán dos de estos métodos, AssertNumericEquals y AssertStringEquals, para comparar variables numéricas y cadenas de caracteres respectivamente. Estos procedimientos son creados al inicializarse GXUnit y forman parte de la KB.
Al ejecutarse uno de estos métodos se irán guardando los resultados para luego poder visualizar todos los resultados de la ejecución de los casos de prueba.
Running Test Cases
La tool window contiene los conjuntos de Casos de Prueba agrupados en sus respectivas Suites.
Seleccionando los casos de prueba que quieren ser ejecutados (mediante su check box) al presionar botón “Test” se creará un nuevo procedimiento (RunnerProcedure) que tendrá las llamadas a todos los tests a correr, se generarán todos los objetos necesarios y se ejecutarán.
Seeing the Results
Luego de ejecutados los casos de prueba se crea un objeto Resultado donde quedará registro del resultado de la prueba. Este objeto tendrá como nombre la fecha y hora de ejecución. En el cabezal se muestra los tests ejecutados y la cantidad de ellos que fallaron. Los Asserts que fallen se mostrarán en rojo con el detalle de la falla y los que se completen satisfactoriamente se mostrarán en verde.
Explorting and Importing Test Cases as well as Results
Tanto los Test Case, Suites como objetos Resultado se pueden exportar e importar entre las distintas Bases de Conocimiento que tengan instalada la herramienta como cualquier otro objeto GeneXus.
Running tests using MSBuild tasks
En la dll GXUnit.dll que se encuentra en la carpeta “Directorio de instalación de GeneXus\Packages” están definidas dos tareas MSBuild (GenerateGXUnitTests y GenerateGXUnitResults) para poder realizar la ejecución de las pruebas desde un script MSBuild. Para usarlas hay que importarlas en el script MSBuild.
Un ejemplo de uso de las tareas, usando también tareas definidas por GeneXus, es el siguiente:
<Target Name="GXUnit">
<OpenKnowledgeBase Directory="Path a la KB"/>
<GenerateGXUnitTests>
<Output TaskParameter="XMLName" PropertyName="XMLName" />
</GenerateGXUnitTests>
<BuildOne ObjectName="RunnerProcedure" ForceRebuild="true" />
<Run ObjectName="RunnerProcedure" />
<GenerateGXUnitResults XMLName="$(XMLName)"/>
<CloseKnowledgeBase />
</Target>