2009-06-22 11 views
9

estoy recién se inician en el uso de VS2008 para escribir procedimientos almacenados CLR para SQL 2008. Al escribir código C# estoy acostumbrado a tener un 'proyecto de prueba' aparte donde yo pondría todo mi código de prueba unitaria, sin embargo, a primera vista parece que no puedo tener la misma configuración con un proyecto clr sql con procedimientos almacenados. Se "siente" que se puede hacer esto, y me faltan algunos parámetros de configuración, pero no estoy seguro de cuáles podrían ser.CLR SQL Procedimientos almacenados de pruebas con proyecto de prueba Unidad

estoy usando

  • Visual Studio 2008
  • MS Prueba
  • MS SQL 2008

Mis requisitos son:

  1. depuración del procedimiento almacenado en lo visual depurador de estudio
  2. tienen un montón de prueba de la unidad para probar los procedimientos almacenados

¿Alguien sabe cómo puedo tener el proyecto de prueba de unidad depoly adecuadamente los procedimientos almacenados en el servidor, conectar con el servidor SQL, y me permiten a paso a través de la prueba de la unidad a los procedimientos almacenados que están sentados en el servidor?

**** **** ACTUALIZACIÓN

Gracias a todos por las respuestas hasta el momento, sin embargo, no son excatly lo que estoy buscando.

Mark Seemann's La respuesta a continuación es un enfoque interesante que no conocía, y ciertamente utilizaré cuando se trata de restablecer mi base de datos a un estado conocido. Sin embargo, estoy buscando depurar los procedimientos almacenados de CLR, y no parece que el método de Mark me permita pasar de mi proyecto de prueba de unidad, a través del servidor SQL, y depurar el código que se encuentra en el servidor.

Miro para depurar la realidad C# sentado en el servidor, al igual que la solución pho3nix se enumeran a continuación. Sin embargo, utilizando este enfoque estándar, debe escribir sus scripts de prueba utilizando un archivo 'Test.sql' y no utilizando un proyecto de prueba unitaria desde Visual Studio.

espero poder tener dos proyectos en mi solución, una para mis procedimientos CLR almacenado y uno para mi proyecto de prueba unitaria. Cuando quiero pasar mis pruebas en mi proyecto de prueba unitaria espero que todos los cambios realizados en mi proyecto de procedimiento almacenado CLR se publica en el servidor, el proyecto de prueba comenzará a ejecutar, y si me puse un punto de quiebre en el CLR procedimiento almacenado cuando la prueba de la unidad comienza a probar ese procedimiento almacenado, se romperá en el servidor y puedo seguir el código.

La solución más cercano que he encontrado hasta ahora es por Alex Kuznetsov and Alex Styler, sin embargo el uso de esta solución No puede desplazarse hasta el servidor SQL.

**** **** ACTUALIZACIÓN 2

Esto es más de un 'bump' para traer a esta pregunta una copia de seguridad ... Todavía no he tenido la suerte paso a paso con el servidor SQL de la unidad pruebas. ¿Algún otro pensamiento?

Respuesta

2

Tienes que habilitada la depuración de SQL/CLR en la conexión antes de poder depurar el código. con el fin de hacer eso, siga las instrucciones aquí http://msdn.microsoft.com/en-us/library/ms165039(VS.80).aspx

Tenga en cuenta que cuando se depura su C# SP, todos los subprocesos administrados en el servidor SQL suspenderán durante su depuración

Espero que esto ayude.

1

I wrote pretty extensively on this subject hace algún tiempo. Siempre implemento mis componentes de acceso a datos en una forma TDD. Eche un vistazo a la publicación en el enlace: es posible que el artículo en sí no le proporcione la mejor visión general, pero también puede descargar el código de muestra e inspeccionarlo por su cuenta.

Creo que cumple todos sus requisitos.

2

Cuando creo un proyecto, tengo un nodo treeview con base de datos y un elemento llamado SQL Server Project.

alt text http://img514.imageshack.us/img514/8523/81345560.jpg

siguiente cuando se crea plantilla de proyecto consigo las escrituras de prueba (Test.sql) donde puedo probar todas mis clases de CLR de SQL Server, utilizando procedimientos comunes de SQL y comandos.

alt text http://img17.imageshack.us/img17/7826/38591345.jpg

Con esto usted puede tener una interfaz de desarrollo para el CLR con depuración. Test.sql es como una clase de unidad para clases CLR.

PS. No olvide CLR activo en su Configuración de SQL Server.

Cuestiones relacionadas