Pergunta

No .NET, você deve colocar projetos de teste de unidade com o restante da solução? Ou deve haver uma solução de teste que abriga todos os projetos de teste?

Temos todos os projetos de teste em nossa solução base de código ... parece um pouco pesado.

O que você faz normalmente?

Foi útil?

Solução

Em nosso projeto atual, decidimos colocar todos os testes de unidade em projetos separados. O código e os testes do aplicativo estão na mesma solução, mas pelo menos podemos criar (e implantar) uma versão sem o código de teste da unidade.

A desvantagem disso - tão distante foi que, às vezes, seus testes de unidade não podem alcançar certos membros do código do aplicativo (protegidos e internos), mas isso geralmente nos leva a descobrir que nosso design poderia ser melhorado.

E acho que devo apontar um tópico semelhante Aqui com mais respostas sobre o mesmo tópico/similar.

Outras dicas

Eu sempre os mantive como parte da solução - eles são, afinal, parte da solução. Você pode ter várias soluções para diferentes abordagens para visualizar seus projetos, portanto, uma solução sem teste pode ser o que você deseja criar para alguns casos.

Nosso código de teste não é enviado, mas eles fazem parte da solução como um todo. Nosso construtor separa os conjuntos de testes e os componentes principais. Do ponto de vista do gerenciamento de soluções, parece que uma solução com mais de 140 projetos é esmagadora.

Sempre usamos um projeto separado na mesma solução.

Isso significa que podemos ter certeza (usando referências) que o código do teste da unidade também testa nossas referências explícitas (em vez de obter implicitamente alguma visibilidade de algo porque está na mesma montagem-por exemplo, "interno")

Geralmente, coloco testes de unidade em seu próprio projeto e testes de integração em seu próprio projeto na solução de aplicativos.

Onde eu trabalho, estamos pensando em colocar testes da Web em uma solução separada. Planejamos compartilhar a criação de testes da Web com a equipe de controle de qualidade e não queremos que esses testes se tornem um passivo de construção.

Não uso .NET, mas quando desenvolvo casos de teste de qualquer tipo, mantenho -os isolados do restante do código para poder implantar o aplicativo sem os testes. O usuário não precisa, nem quer essas coisas.

Veja o design do seu projeto. Se estiver perto do layout do MVC ou de uma de suas alternativas, você deve ter níveis distintos de diferentes montagens. Faça uma submontagem de teste para cada nível do seu design.

Nosso projeto de teste geralmente é executado no lugar do projeto que cria o exe. Nosso projeto EXE é um shell fino que passa eventos e informações para uma montagem cheia de classes de controlador que tem o código que a maioria das pessoas coloca em um projeto EXE. Isso permite que o projeto de teste finge ser o EXE para 90% do processo de teste normal.

Ainda estamos elaborando o melhor acordo para os casos de teste reais. No momento, temos vários níveis importantes de nosso utilitário de estrutura, objetos de aplicação, estrutura da interface do usuário, comandos, controladores de interface do usuário e exe. Temos uma montagem para cada nível, exceto para exe (que é testado manualmente). Quando editamos uma montagem, carregamos o conjunto de teste para esse nível. Quando precisamos fazer algo que toque em todos os níveis, precisamos carregar todos os conjuntos de testes.

Durante o nosso processo de construção de um botão, executamos o Projeto de teste exe. (Temos um utilitário separado para isso).

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