A essa altura todo mundo já sabe que a Microsoft abraçou a ideia de rodar outros frameworks de testes diretamente de dentro do Visual Studio. Isso se concretizou com o Visual Studio vNext, ainda sem nome mas chamado de Dev11.
Ao criar um projeto de testes no Dev11, o que vem por padrão é o MSTest, framework da Microsoft. Para rodar o popular NUnit, você tem que seguir poucos passos:
Acrescentar o NUnit test adapter no Visual Studio via Extension Gallery:
Instalar o NUnit via Nuget:
Opcionalmente remover a referência ao Assembly do MSTest, Microsoft.VisualStudio.QualityTools.UnitTestFramework.
Substituir os atributos do MSTest pelos do NUnit (de TestClass para TestFixture e de TestMethod para Test). Um find and replace all resolve isso rápido. Os asserts devem continuar funcionando, já que a maioria é igual nos dois frameworks, com pequenas diferenças. A classe padrão fica assim:
using NUnit.Framework; namespace UnitTestProject1 { [TestFixture] public class UnitTest1 { [Test] public void TestMethod1() { } } }
Um teste simples de soma, seria assim:
[Test] public void Soma() { Assert.AreEqual(3, 2 + 1); }
E rodar pelas vias normais (atalho de teclado, menu ou botão). O resultado aparece diretamente dentro do Visual Studio:
Outra coisa interessante é que essa nova janela, Unit Test Explorer, é não invasiva. Depois de rodar os testes ela aparece, mostra os resultados, e logo volta pra posição em colapso, não obstruindo seu trabalho. Os testes parecem estar rodando mais rápido também.
Tudo muito bom. É uma grande evolução com relação a versão anterior, por diversos motivos.
Giovanni Bassi
Arquiteto e desenvolvedor, agilista, escalador, provocador. É fundador e CSA da Lambda3. Programa porque gosta. Acredita que pessoas autogerenciadas funcionam melhor e por acreditar que heterarquia é mais eficiente que hierarquia. Foi reconhecido Microsoft MVP há mais de dez anos, dos mais de vinte que atua no mercado. Já palestrou sobre .NET, Rust, microsserviços, JavaScript, TypeScript, Ruby, Node.js, Frontend e Backend, Agile, etc, no Brasil, e no exterior. Liderou grupos de usuários em assuntos como arquitetura de software, Docker, e .NET.