Pergunta

Depois de ler o seguinte artigo Criar condições de teste para o Database Unit Test Designer no MSDN, decidi tentar criar uma condição de teste personalizada para meus testes de unidade de banco de dados

  • Atendi aos requisitos do Ultimate ou Premium como meu ambiente.
  • Criou um novo projeto de biblioteca de classe e referenciou Microsoft.Data.Schema.UnitTesting e Microsoft.Data.Schema, bem como Microsoft.Data.Schema.Sql
  • Eu criei uma classe herdada de TestCondition e a chamei de ExpectedSqlException definida como a seguir

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)
         {
         ...
         }
    } 
  • Seguindo como fazer , criei as extensões arquivo .xml que coloquei em %ProgramFiles%\Microsoft Visual Studio 10.0\VSTSDB\Extensions e parece que sim (o tipo de chave / valor é minha informação pública do assembly, deve ser diferente para o seu)

    <?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 registrou a montagem no GAC após assinar a montagem

Portanto, agora com meu novo TestCondition, devo ser capaz de usá-lo dentro do designer de teste de unidade de banco de dados para definir expectativas, MAS TAMBÉM NÃO FUNCIONA :(

Alguém pode me ajudar com isso? o que estou perdendo?

Foi útil?

Solução

Posso ver uma coisa que fiz de forma diferente quando fiz isso e que não está claramente declarado no link como você referenciou.

Ele fala sobre colocar coisas em "Arquivos de Programas", mas talvez isso só funcione para máquinas de 32 bits.Visual Studio é um aplicativo de 32 bits e na máquina de 64 bits (que eu estava usando) eu ignorei as instruções e copiei o assembly e o arquivo xml para% ProgramFiles (x86)% NOT% ProgramFiles% - que parecia funcionar para mim.Mas nunca tentei% ProgramFiles% - então não posso verificar se isso é um problema.

É isso?

Adendo:

Olhando mais adiante em seu código, você terá que adicionar o atributo [DatabaseSchemaProviderCompatibility (null)] em seu TestCondition.Isso carregará a extensão quando você não tiver um provedor de esquema de banco de dados carregado no projeto atual, o que seria o caso para Projetos de teste.Esse atributo não é um methinks muito intuitivo.

James.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top