Teste de unidade do banco de dados do VS 2010 com condição de teste personalizada
-
28-10-2019 - |
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
eMicrosoft.Data.Schema
, bem comoMicrosoft.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?
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.