Escribir pruebas unitarias para DLL de C/C++ en Visual Studio
Artículo
Hay varias maneras de probar código de DLL, dependiendo de si dicho código exporta las funciones que quiere probar. Elija una de las siguientes formas:
Las pruebas unitarias solo llaman a funciones que se exportan desde la DLL: agregue un proyecto de prueba independiente, como se describe en Escribir pruebas unitarias para C/C ++. En el proyecto de prueba, agregue una referencia al proyecto DLL.
Las pruebas unitarias llaman a funciones que no son miembro y que no se exportan desde la DLL, y la DLL se puede compilar como una biblioteca estática: cambie el proyecto de DLL para que se compile en un archivo .lib. Agregue un proyecto de prueba independiente que haga referencia al proyecto en pruebas.
Este método tiene la ventaja de permitir que las pruebas usen miembros no exportados, pero sigue manteniendo las pruebas en un proyecto independiente.
Las pruebas unitarias deben llamar a funciones que no son miembro y que no se exportan, y el código debe compilarse como una biblioteca de vínculos dinámicos (DLL): agregue pruebas unitarias en el mismo proyecto que el código de producto.
Si las pruebas deben usar miembros que el proyecto DLL no exporta y el proyecto se compila como una biblioteca dinámica, considere la posibilidad de convertirla en una biblioteca estática.
En el Explorador de soluciones, en el menú contextual del proyecto en pruebas, seleccione Propiedades. Se abrirá la ventana de propiedades del proyecto.
Seleccione Propiedades de configuración>General.
Establezca Tipo de configuración en Biblioteca estática (.lib).
Para hacer referencia a funciones de DLL exportadas del proyecto de prueba
Si un proyecto DLL exporta funciones que quiere probar, puede agregar una referencia al proyecto de código desde el proyecto de prueba.
Cree un proyecto de prueba unitaria nativo.
En el menú Archivo, elija Nuevo>Proyecto. En el cuadro de diálogo Agregar un proyecto nuevo establezca el valor de Lenguaje en C++ y escriba "prueba" en el cuadro de búsqueda. Después, elija el proyecto de prueba unitaria de tipo nativo.
En el Explorador de soluciones, haga clic con el botón derecho en el proyecto de prueba y, a continuación, elija Agregar>Referencia.
Seleccione Proyectos y, después, el proyecto que se va a probar.
Elija el botón Agregar.
En las propiedades del proyecto de prueba, agregue la ubicación del proyecto en pruebas a los directorios de archivos de inclusión.
Seleccione Propiedades de configuración>Directorios de VC++>Directorios de archivos de inclusión.
Elija Editar y agregue el directorio del encabezado del proyecto en pruebas.
Para vincular las pruebas a los archivos biblioteca u objeto
Si la DLL no exporta las funciones que quiere probar, puede agregar el archivo de salida .obj o .lib a las dependencias del proyecto de prueba.
Cree un proyecto de prueba unitaria nativo.
En el menú Archivo, elija Nuevo>Proyecto. En el cuadro de diálogo Agregar un proyecto nuevo establezca el valor de Lenguaje en C++ y escriba "prueba" en el cuadro de búsqueda. Después, elija el proyecto de prueba unitaria de tipo nativo.
En el Explorador de soluciones, en el menú contextual del proyecto de prueba, seleccione Propiedades.
Elija Propiedades de configuración>Vinculador>Entrada>Dependencias adicionales.
Seleccione Editar y agregue los nombres de los archivos .obj o .lib. No utilice nombres de ruta de acceso completa.
Elija Propiedades de configuración>Enlazador>General>Directorios de bibliotecas adicionales.
Seleccione Editar y agregue la ruta del directorio de los archivos .obj o .lib. La ruta de acceso está normalmente dentro de la carpeta de compilación del proyecto en pruebas.
Seleccione Propiedades de configuración>Directorios de VC++>Directorios de archivos de inclusión.
Elija Editar y agregue el directorio del encabezado del proyecto en pruebas.
Para agregar pruebas unitarias en el mismo proyecto
Modifique las propiedades del proyecto de código del producto para incluir los encabezados y los archivos de biblioteca que se requieren para pruebas unitarias.
En el Explorador de soluciones, en el menú contextual del proyecto en pruebas, seleccione Propiedades. Se abrirá la ventana de propiedades del proyecto.
Elija Propiedades de configuración>Directorios de VC++ .
Edite los directorios de inclusión y de biblioteca:
Directorio
Propiedad.
Directorios de archivos de inclusión
$(VCInstallDir)Auxiliary\VS\UnitTest\include
Directorios de archivos de bibliotecas
$(VCInstallDir)Auxiliary\VS\UnitTest\lib
Agregue el archivo de prueba unitaria de C++:
Haga clic con el botón derecho en el nodo del proyecto en el Explorador de soluciones y seleccione Agregar>Nuevo elemento.
En el cuadro de diálogo Agregar nuevo elemento, seleccione Archivo C++ (.cpp), escriba un nombre adecuado para este y elija Agregar.
En el menú Prueba, elija Windows>Explorador de pruebas.
Si no todas las pruebas son visibles en la ventana, compile el proyecto de prueba; para ello, haga clic con el botón derecho en el nodo correspondiente en el Explorador de soluciones y elija Compilar o Recompilar.
En el Explorador de pruebas, elija Ejecutar todas o seleccione las pruebas concretas que quiera ejecutar. Haga clic con el botón derecho en una prueba para ver otras opciones, como la ejecución en modo de depuración con puntos de interrupción habilitados.
Comience a probar las aplicaciones de C# mediante las herramientas de prueba de Visual Studio. Aprenda a escribir pruebas, usar el explorador de pruebas, crear conjuntos de pruebas y aplicar el patrón rojo, verde y de refactorización para escribir código.
Desarrolle un archivo DLL de C++ nativo utilizando la metodología de prueba primero, cree proyectos de prueba y DLL, depure pruebas, refactorice, reduzca dependencias para mejorar las pruebas unitarias y mucho más.
Use el marco de pruebas unitarias de Microsoft para C++ para escribir y ejecutar pruebas unitarias para el código de C++ y agregar funciones no exportadas como dependencias de prueba.
Escriba y ejecute pruebas unitarias de C++ con el Explorador de pruebas en Visual Studio mediante CTest, Boost.Test, Google Test y otros marcos de pruebas.
Cree y ejecute pruebas unitarias con Google Test para C++, agregue y configure el proyecto de prueba, establezca opciones adicionales y agregue directivas de inclusión.
En este artículo se describen los miembros de CppUnitTestFramework, los cuales puede usar para escribir pruebas unitarias de C++ basadas en el marco de pruebas unitarias nativo de Microsoft.
Aprenda a crear pruebas unitarias para un archivo DLL de C++ para aplicaciones de la Plataforma universal de Windows con el marco de pruebas de Microsoft para C++.
Cree y ejecute pruebas con CTest para C++, que está integrado en Visual Studio de forma predeterminada, y use comandos de CMake conocidos, como enable_testing y add_test.
Instale y use el adaptador de Boost.Test para desarrollar pruebas unitarias para C++ en Visual Studio, crear y actualizar configuraciones de compilación y agregar directivas include.