Pregunta

Después de leer el siguiente artículo Crear condiciones de prueba para el diseñador de pruebas de la unidad de base de datos en MSDN decidí intentar crear una condición de prueba personalizada para las pruebas unitarias de mi base de datos

  • He cumplido con los requisitos de Ultimate o Premium como mi entorno.
  • Creé un nuevo proyecto de biblioteca de clases y referenciaron Microsoft.Data.Schema.UnitTesting y Microsoft.Data.Schema, así como Microsoft.Data.Schema.Sql
  • Creé una clase heredada de TestCondition y la llamé ExpectedSqlException definida de la siguiente manera

EDITAR:

     [DisplayName("Some test condition")] 
     [DatabaseSchemaProviderCompatibility(null)] 
     public class SomeTestCondition : TestCondition
     {
         public override void Assert(System.Data.Common.DbConnection validationConnection, Microsoft.Data.Schema.UnitTesting.ExecutionResult[] results)
         {
         ...
         }
    } 
  • Siguiendo cómo , creé las extensiones .xml que luego coloqué en %ProgramFiles%\Microsoft Visual Studio 10.0\VSTSDB\Extensions y se ve así (el tipo clave / valor es la información pública de mi ensamblaje, esto debería ser diferente para el suyo)

    <?xml version="1.0" encoding="utf-8"?>    
    <extensions assembly="" version="1" xmlns="urn:Microsoft.Data.Schema.Extensions" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:Microsoft.Data.Schema.Extensions Microsoft.Data.Schema.Extensions.xsd">    
        <extension type="SomeTestCondition.SomeTestCondition" assembly="SomeTestCondition, Version=1.0.0.0, Culture=neutral, PublicKeyToken=01a289ad96d7a8a8" enabled="true" />    
    </extensions>
    
  • Y registró la asamblea en el GAC después de firmar la asamblea

Así que ahora, con mi nueva condición de prueba, debería poder usarla dentro del diseñador de pruebas de unidades de base de datos para definir expectativas, PERO NO FUNCIONA :(

¿Alguien puede ayudarme con esto? ¿Qué me estoy perdiendo?

¿Fue útil?

Solución

Puedo ver una cosa que hice de manera diferente cuando hice esto que no se indica claramente en la forma de vincularla a la que hizo referencia.

Habla sobre poner cosas en "Archivos de programa", pero tal vez esto solo funcione para máquinas de 32 bits.Visual Studio es una aplicación de 32 bits y en la máquina de 64 bits (que estaba usando) ignoré las instrucciones y copié el ensamblaje y el archivo xml en% ProgramFiles (x86)% NOT% ProgramFiles%, que parecía funcionar para mí.Sin embargo, nunca probé% ProgramFiles%, por lo que no puedo verificar que esto sea un problema.

¿Es eso?

Anexo:

Mirando más a fondo su código, tendrá que agregar el atributo [DatabaseSchemaProviderCompatibility (null)] en su TestCondition.Esto cargará la extensión cuando no tenga un proveedor de esquema de base de datos cargado en el proyecto actual, que sería el caso de Proyectos de prueba.Creo que ese atributo no es muy intuitivo.

James.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top