Onde está a seleção "Criar testes de unidade"?

154

Eu instalei o novo Visual Studio 2012 Ultimate.

Criei um projeto de teste com minha solução e ele contém alguns testes de unidade padrão. No entanto, clicar com o botão direito do mouse em novos Métodos não mostra mais o menu de contexto "Criar testes de unidade".

Veja Visual Studio 2010 Ultimate: insira a descrição da imagem aqui

E o Visual Studio 2012 Ultimate: insira a descrição da imagem aqui

Alguma idéia do porquê disso?

ATUALIZAR:

Solução para o Visual Studio 2012 e 2013:

A Microsoft o reconheceu aqui e oferece uma solução oficial para corrigir o problema. Baixe, instale e divirta-se!

Houman
fonte
são ambos o mesmo projeto ou compilação de mvc?
Daniel A. White
Estes são os novos projetos MVC 4 criados a partir do zero.
Houman
Interessante. O que acontece quando você clica em "Executar testes de unidade"?
Diego
2
eu reportaria isso como um bug.
Daniel A. White
4
O VS 11 avançou bastante na direção de fornecer uma infraestrutura de teste via MSTest para fornecer uma estrutura de teste conectável. Isso pode ser uma consequência dessa decisão. De qualquer maneira que eu iria apresentar um bug
JaredPar

Respostas:

86

Esse recurso foi cortado do VS.

http://blogs.msdn.com/b/visualstudioalm/archive/2012/03/08/what-s-new-in-visual-studio-11-beta-unit-testing.aspx

Assistente para Gerar Teste de Unidade - No VS2010, você poderia clicar com o botão direito do mouse em um método no seu código e geraríamos um teste de unidade em seu projeto de teste. Este assistente estava muito acoplado ao MS-Test e dependia de recursos como Acessadores Privados para fazer seu trabalho, por isso foi cortado. Estamos explorando alternativas aqui, mas ainda não temos boas soluções.

EDIT Existe uma solução alternativa : http://blogs.msdn.com/b/malaysia/archive/2013/02/20/right-click-create-unit-tests.aspx

Daniel A. White
fonte
16
Espero que eles apresentem uma solução funcional. Parece um grande passo para trás de outra forma
Andrew Harry
3
Parece que a terceira opção nessa solução alternativa não está mais disponível no VS2013.
Sander
A funcionalidade está voltando no VS2015 blogs.msdn.com/b/visualstudioalm/archive/2015/03/06/…, graças aos que votaram nela em visualstudio.uservoice.com/forums/121579-visual-studio/… . @ furier: Talvez você tenha votado a favor?
LosManos 11/03/2015
Quero dizer, estava lá há 5 minutos ... agora não está lá agora - por que vem e vai?
BrainSlugs83
33

A extensão " Unit Test Generator " está disponível

Extensão do gerador de teste de unidade

Para adicionar diretamente do IDE do Visual Studio 2012/2013:

  1. Menu: Ferramentas -> Extensões e Atualizações
  2. Clique em: Online -> Galeria do Visual Studio
  3. Procura por: "Gerador de teste de unidade"

Demonstração de vídeo do MSDN

Nota: O MSTest no VS 2012/2013 ainda é péssimo

JohnB
fonte
28

O item de menu ainda está no lugar, mas por razões desconhecidas, é invisível no editor de código. Mas você pode usar comandos do visual studio para executar o assistente de teste de unidade. O comando que você precisa é

EditorContextMenus.CodeWindow.CreateUnitTests

Abra a janela de comando e digite o comando lá. Ou digite um comando de alias da seguinte maneira

alias ut EditorContextMenus.CodeWindow.CreateUnitTests

e atribua o alias para executar o comando mais rapidamente.

Outra maneira de executar o assistente é o atalho do teclado. No Visual Studio, abra

Tools -> Options -> Environment -> Keyboard

Digite "createunit" em "Mostrar comandos que contenham" caixa de texto para filtrar o comando CreateUnitTests, selecione-o. Escolha "Editor de texto" em "Usar novo atalho em" combo e pressione o atalho desejado no campo de texto "Pressione as teclas de atalho" (por exemplo, Ctrl + T, Ctrl + C). Por fim, pressione o botão Atribuir. Aproveitar!

intrueder
fonte
7
Não consigo fazer isso funcionar. Eu coloco meu cursor no método. Pressione o código de acesso que eu adicionei, mas receba uma mensagem: O comando "EditorContextMenus.CodeWindow.CreateUnitTests" não está disponível.
Ralph Jansen
Eu tentei no Visual Studio 2012 Ultimate com a atualização instalada, pode ser que isso importe.
intrueder
1
Eu recebo o mesmo erro do LockTar quando tento isso. Portanto, a maneira mais fácil de usar o teste de unidade é fazer um novo projeto de teste de unidade.
saadan
Não sei explicar por que você recebeu um erro, mas eu peguei o vídeo de prova e você pode assisti-lo em grabilla.com/02c0a-6f42a829-1535-4016-a7ff-cbbda665bee5.html
intrueder
Se o assistente não estiver disponível, consulte o blog dl.my/2013/create-unit-tests-function-not-available-or-disabled ou minha resposta abaixo stackoverflow.com/a/15184716/52277
Michael Freidgeim
19

Aqui está como habilitá-lo novamente:

Método 1 - Janela de Comando

Se você achar bastante, descobrirá que o comando para invocar os Testes de Unidade de Criação ... é na verdade:

EditorContextMenus.CodeWindow.CreateUnitTests

Você pode realmente digitar isso na janela de comando para invocar o Assistente para Criar Teste de Unidade. Se você achar muito detalhado, poderá criar um alias para ele.

alias ut EditorContextMenus.CodeWindow.CreateUnitTests

Em seguida, basta digitar ut para iniciar o assistente.

Método 2 - Atalho do teclado

O próximo método é ir para Ferramentas-> Opções-> Ambiente-> Teclado e definir uma tecla de atalho de sua preferência.

Método 3 - Reative o menu Criar contexto de testes de unidade ...

Para reativar o menu Criar testes de unidade ..., vá em Ferramentas-> Personalizar ... para abrir a caixa de diálogo Personalizar. Na caixa de diálogo Personalizar, vá para a guia Comandos, selecione o botão de opção do menu Contexto e escolha Menus de contexto do editor | Janela de código.

Você perceberá que o item de menu está realmente disponível no menu de contexto. Os desenvolvedores do VS tiveram a gentileza de deixá-lo lá para nós.

Clique no item de menu Criar testes de unidade ... e clique em Mover para baixo até que esteja ativado / sob o comando "Executar testes ...". Depois clique em Fechar.

Reinicie o Visual Studio 2012 e pronto! O menu de contexto estará disponível!

Você pode descobrir que o uso de qualquer um dos métodos acima pode não funcionar. ou seja, a janela de comando informa que o comando não está disponível, o atalho de teclado não será acionado ou o menu de contexto estará disponível, mas desativado.

Para permitir que tudo isso funcione, você primeiro precisa ter um Projeto de Teste de Unidade em sua solução. Após criar o Projeto de Teste de Unidade, você precisará adicionar manualmente um item de Teste de Unidade ao projeto, mesmo que o projeto se desenvolva com um por conta própria. Depois de fazer isso, tudo funcionará como no Visual Studio 2010. Você pode remover com segurança esses arquivos UnitTest1.cs.

Fonte (com imagens, não tenho Rep Points suficientes para colocá-las):
http://serena-yeoh.blogspot.fr/2013/02/visual-studio-2012-create-unit-test.html

(ps: leia as advertências !!!!)

Sebastien H.
fonte
Observe que o Assistente de criação de testes de unidade do VS 2012 oferece suporte a testes de geração apenas para métodos públicos, quando na versão anterior os métodos privados também eram suportados.
Michael Freidgeim
3
Isso me ajudou muito, muito obrigado. Estava faltando a adição de uma etapa de teste de unidade fictícia no meu remédio.
Tanveer Badar
1
Criando manualmente um teste de unidade importante. Bobo não sei por que o item de menu foi desativado até então.
indolentdeveloper
Encontrado a mesma coisa aqui, bem .. dawalaw.com/2013/enable-create-unit-tests-on-visual-studio-2012
ensolarado Tambi
9

A resposta do intrueder não funcionou para muitos usuários. Quando entro na UT em uma janela de comando, às vezes tenho o seguinte

>UT
Command "EditorContextMenus.CodeWindow.CreateUnitTests" is not available.

Mas, às vezes, funcionava para a mesma solução, então o comportamento parecia ser intermitente.

Com a ajuda da postagem de Dawa Law , " Criar testes de unidade ... Função não disponível ou desativada " Eu descobri que durante cada sessão do Visual Studio você precisa criar uma classe de teste manualmente antes que o assistente esteja disponível.

Se você já possui um projeto de Teste de Unidade na solução,

No Solution Explorer, clique com o botão direito do mouse no projeto Unit Test -> Add -> Unit Test ... Isso criará uma nova classe de teste de unidade e acionará o Visual Studio que uma classe de teste de unidade existente está disponível, ativando o assistente para criar testes de unidade. Nota: Você pode excluir o arquivo de classe de teste de unidade criado (UnitTestX.cs), pois é usado para acionar a função.

Se você não possui um projeto de Teste de Unidade existente na solução, é necessário criá-lo antes de adicionar uma classe manual:

Vá para Arquivo -> Adicionar -> Novo Projeto ... Na janela Adicionar Novo Projeto, selecione Instalado -> Visual C # -> Teste -> Projeto de Teste de Unidade. Dê um nome significativo e clique em OK

A postagem da lei de Dawa , “ Criar testes de unidade…”, a função não está disponível ou desabilitada possui instantâneos para ilustrar cada etapa.

Observe que o Assistente de criação de testes de unidade do VS 2012 oferece suporte a testes de geração apenas para métodos públicos , quando na versão anterior os métodos privados também eram suportados.

.

Michael Freidgeim
fonte
"você precisa criar uma classe de teste manualmente antes assistente estará disponível" - que fez o truque para mim no final
Jorj
Graças eu usei o blog do Dawa Lei e é feito finalmente :)
Ahmed Elbatt
4

Você pode recuperar o botão direito do mouse em "Criar testes de unidade ..." importando as seguintes configurações vs daqui .

Dawa Law
fonte
3

http://blogs.msdn.com/b/malaysia/archive/2013/02/20/right-click-create-unit-tests.aspx

Método 3 - Reative o menu Criar contexto de testes de unidade ...

Este é de longe o melhor método de todos os tempos. Para reativar o menu Criar testes de unidade ..., vá em Ferramentas-> Personalizar ... para abrir a caixa de diálogo Personalizar. Na caixa de diálogo Personalizar, vá para a guia Comandos, selecione o botão de opção do menu Contexto e escolha Menus de contexto do editor | Janela de código.

Peter Ming
fonte
... e depois o que? Ele já está listado lá, mas não aparece quando clico com o botão direito.
Luke Puplett
0

"Você pode descobrir que o uso de qualquer um dos métodos acima pode não funcionar. Por exemplo, a janela de comando informa que o comando não está disponível, o atalho de teclado não será acionado ou o menu de contexto estará disponível, mas desativado.

Para permitir que tudo isso funcione, você primeiro precisa ter um Projeto de Teste de Unidade em sua solução. Após criar o Projeto de Teste de Unidade, você precisará adicionar manualmente um item de Teste de Unidade ao projeto, mesmo que o projeto se desenvolva com um por conta própria. Depois de fazer isso, tudo funcionará como no Visual Studio 2010. Você pode remover com segurança esses arquivos UnitTest1.cs. "

(Michael Freidgeim)

varini
fonte