Question

Après avoir lu l'article suivant Créer des conditions de test pour le concepteur de test unitaire de base de données Sur MSDN, j'ai décidé d'essayer de créer une condition de test personnalisée pour mes tests unitaires de base de données

  • J'ai répondu aux exigences de l'ultime ou de la prime comme environnement.
  • Créé un nouveau projet de lib de classe et référencé Microsoft.Data.Schema.UnitTesting et Microsoft.Data.Schema aussi bien que Microsoft.Data.Schema.Sql
  • J'ai créé une classe héritée de TestCondition et je l'appelle attendSQLEXception définie comme la suivante

ÉDITER:

     [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)
         {
         ...
         }
    } 
  • Suivant le comment J'ai ensuite créé le fichier extentions.xml dans lequel j'ai ensuite placé %ProgramFiles%\Microsoft Visual Studio 10.0\VSTSDB\Extensions Et il y a ainsi (la clé / valeur de type est mon assemblée publique, cela devrait être différent pour le vôtre)

    <?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>
    
  • Et enregistré l'assemblage dans le GAC après avoir signé l'assemblage

Alors maintenant, avec ma nouvelle condition de test, je devrais pouvoir l'utiliser dans le concepteur de tests d'unité de base de données pour définir les attentes, mais hélas cela ne fonctionne pas :(

Quelqu'un peut il m'aider avec ça? Qu'est-ce que je rate?

Était-ce utile?

La solution

Je peux voir une chose que j'ai faite différemment quand j'ai fait cela qui n'est pas clairement énoncée dans le lien que vous avez référencé.

Cela frappe à propos de mettre des choses dans des "fichiers de programme", mais peut-être que cela ne fonctionne que pour les machines de 32 bits. Visual Studio est une application 32 bits et sur la machine 64 bits (que j'utilisais), j'ai ignoré les instructions et copié le fichier assembly et XML sur% ProgramFiles (x86)% pas% ProgramFiles% - ce qui semblait fonctionner pour moi. Mais je n'ai jamais essayé% Programfiles%% - donc je ne peux pas vérifier que c'est un problème.

Est-ce que c'est ça?

Addenda:

En regardant plus en détail votre code, vous devrez ajouter l'attribut [DatabasesChemAproviderCompatibilité (null)] sur votre TestCondition. Cela chargera l'extension lorsque vous n'avez pas de fournisseur de schéma de base de données chargé dans le projet actuel, ce qui serait le cas pour les projets de test. Cet attribut n'est pas très intuitif.

James.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top