Domanda

Dopo aver letto il seguente articolo Crea condizioni di test per Database Unit Test Designer su MSDN ho deciso di provare a creare una condizione di test personalizzata per i miei unit test del database

  • Ho soddisfatto i requisiti di Ultimate o Premium come ambiente.
  • Creato un nuovo progetto lib di classe e ha fatto riferimento a Microsoft.Data.Schema.UnitTesting e Microsoft.Data.Schema nonché a Microsoft.Data.Schema.Sql
  • Ho creato una classe ereditando da TestCondition e l'ho chiamata ExpectedSqlException definita come segue

MODIFICA:

     [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)
         {
         ...
         }
    } 
  • Seguendo le procedure ho quindi creato le estensioni .xml file che ho poi inserito in %ProgramFiles%\Microsoft Visual Studio 10.0\VSTSDB\Extensions e sembra così (il tipo chiave / valore è la mia informazione pubblica sull'assembly, questo dovrebbe essere diverso per il tuo)

    <?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>
    
  • E registrato l'assembly nel GAC dopo aver firmato l'assembly

Quindi ora con il mio nuovo TestCondition dovrei essere in grado di usarlo all'interno del progettista di test di unità di database per definire le aspettative, MA purtroppo NON FUNZIONA :(

Qualcuno può aiutarmi con questo? cosa mi manca?

È stato utile?

Soluzione

Vedo una cosa che ho fatto in modo diverso quando l'ho fatto che non è chiaramente indicata nelle modalità di collegamento a cui hai fatto riferimento.

Si parla di mettere cose in "File di programma" ma forse questo funziona solo per macchine a 32 bit.Visual Studio è un'app a 32 bit e sulla macchina a 64 bit (che stavo usando) ho ignorato le istruzioni e ho copiato l'assembly e il file xml in% ProgramFiles (x86)% NOT% ProgramFiles% - che sembrava funzionare per me.Tuttavia, non ho mai provato% ProgramFiles%, quindi non posso verificare che si tratti di un problema.

È così?

Addendum:

Analizzando ulteriormente il tuo codice, dovrai aggiungere l'attributo [DatabaseSchemaProviderCompatibility (null)] alla tua TestCondition.Questo caricherà l'estensione quando non hai un provider di schemi di database caricato nel progetto corrente, come sarebbe il caso dei progetti di test.Questo attributo non è un metodo molto intuitivo.

James.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top