Teste de unidade do Visual Studio: configuração e desativação

91

Em vez de [SetUp] e [TearDown] no Nunit, qual é a alternativa no Visual Studio Ultimate 2010 Unit Testing. No Nunit, você pode imaginar os métodos de configuração e desmontagem como construtores e destruidores para os testes em nossa classe.

Etibar - um bar de chá
fonte

Respostas:

144

Um método anotado com [TestInitialize]é executado antes de cada teste. Da mesma forma [TestCleanup]é após cada teste.

[ClassInitialize]e [ClassCleanup]são executados antes e depois do 'conjunto' de testes dentro do TestClass.

Mikeb
fonte
6
Você poderia ter adicionado que o método ClassInitialize leva um TestContext como argumento.
cerca de
4
E também deve ser estático público
Shalom Aleichem
4

O Visual Studio usará o MSTest, que é a estrutura de teste de unidade da Microsoft, é semelhante ao NUnit. Na verdade, a maioria deles são semelhantes em conceitos, mas sintaxe diferente.

Para ver a comparação, os criadores do xUnit (outra estrutura de teste de unidade) têm uma lista aqui:

http://xunit.github.io/docs/comparisons.html

Mais especificamente, o que você pediu TestInitializeé o equivalente do MSTest ao do NUnit Setup, e o mesmo para TestCleanupe TearDown.

Uma coisa a ser observada: eu ficaria com o NUnit se você estiver tentando fazer testes de unidade automatizados ou algum tipo de integração contínua. O principal motivo pelo qual as várias *unitestruturas são favorecidas ao MSTest é porque você deve ter uma cópia do Visual Studio na máquina em que está executando os testes. Ótimo para sua máquina local, uma história diferente para um servidor de CI. O Visual Studio é o porco de um programa e instalá-lo em um servidor (que geralmente é considerado o mais leve e rápido possível), apenas executar testes é um pouco chato.

Arran
fonte
7
Você pode simplesmente instalar o TFS Team Test Agent (e não configurá-lo) em um servidor CI para instalar os executores de teste ( microsoft.com/en-us/download/details.aspx?id=1334 ). Não há necessidade de uma instalação completa do Visual Studio, a menos que você queira os testes Genérico, Ordenado, CodedUI ou Desempenho.
jessehouwing de
1
O Team Build 2012 instala suporte para diferentes executores de teste prontos para uso, sem a necessidade de instalar o Visual Studio em seu servidor de compilação também.
jessehouwing de