Onde encontrar a DLL ausente de "Microsoft.VisualStudio.TestTools.UnitTesting"?

131

Estou recebendo o seguinte erro no meu projeto de visual studio em C #:

O nome do tipo ou espaço para nome 'VisualStudio' não existe no espaço para nome 'Microsoft' (está faltando uma referência de montagem?)

Eu também tentei encontrar o arquivo microsoft.dll, mas não consegui nenhuma referência. Estou pesquisando a DLL errada?

using Microsoft.VisualStudio.TestTools.UnitTesting;  
using Kya.MsFx.Services.Swiper;

namespace Kya.MsFx.Devices.Swiper.Test
{
[TestClass]
public class SwiperWindowTest
{

    private SwiperWebServiceHost m_SwiperWS = null;
    /// <summary>
    ///     start web service on a separate thread, so tests 
    ///     can be executed withut blocking the application thread
    /// </summary>
    [ClassInitialize]
    public void SetupSwiperTests() {

        m_SwiperWS = SwiperWebServiceHost.StartService();

    }

    /// <summary>
    /// Stop service started during class initialize and kill the thread
    /// </summary>
    [ClassCleanup]
    public void CleanupSwiperTests() {
        m_SwiperWS.Stop();
    }


    /// <summary>
    ///   simulate init, swipe, clear operations
    /// </summary>
    [TestMethod]
    public void TestSwiperService()
    {
        MessageBox.Show("test");
    }
}
}
Amit Pal
fonte
1
Você ainda está recebendo o mesmo erro após adicionar a referência de montagem Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll?
Joachim Isaksson

Respostas:

144

Você precisa adicionar referência a

Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 

Ele pode ser encontrado no diretório "C: \ Arquivos de Programas \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ PublicAssemblies \" (para VS2010 professional ou superior; .NET Framework 4.0).

ou clique com o botão direito do mouse em seu projeto e selecione: Adicionar referência ...> .NET: ou clique em Adicionar referência ...> .NET:

Agent007
fonte
2
Por que isso foi aceito? Os comentários parecem indicar que foi inútil. Alguém poderia elaborar?
Sirdank
@sirdank Você percebe que ninguém, exceto o OP, pode aceitar uma resposta como solução, não é? Se não fosse útil para o OP, ele não teria aceitado.
Agent007
4
@ Agent007 eu sei. No entanto, o OP, deixando um comentário indicando que não funcionou, sugere (pelo menos para mim) que algo mais precisa ser feito. Depois de descobrir o que mais precisava ser feito, não deixar um comentário descrevendo isso parece inútil.
Sirdank 12/05
6
Só tive esse problema, e essa resposta foi a solução. Alguém tem alguma idéia de por que esse é o caso? Por que o namespace Microsoft.VisualStudio.TestTools.UnitTestinge o assembly são Microsoft.VisualStudio.QualityTools.UnitTestFramework? Por que eles não poderiam nomear os dois a mesma coisa?
Alan Thomas
Uma das maneiras pelas quais eu tropecei foi que, quando o Team Build cria, ele fica em uma pasta diferente, dependendo da versão. Microsoft Visual Studio 10.0 para VS 2010, Microsoft Visual Studio 12.0 para VS 2013, Microsoft Visual Studio 14.0 para VS 2015.
Ryan Gates
67

Eu sei que isso é antigo, foi o que surgiu na minha pesquisa no Google. Eu precisava fazer referência a esses pacotes no NuGet:

insira a descrição da imagem aqui

Jesse Sierks
fonte
No meu caso (VS2019), eu precisava atualizar esses pacotes e o problema foi corrigido. Felicidades!
RJFalconer
Isso funciona perfeitamente para mim. Eu uso o Rider e o aplicativo foi originalmente construído no VS. Obrigado por colocar isso aqui.
Yatin
17

A DLL que você está procurando que contém esse espaço para nome é

Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

Observe que o teste de unidade não pode ser usado no Visual Studio Express .

Joachim Isaksson
fonte
3
Você poderia me dar o link para download?
Amit Pal
@AmitPal Que edição do Visual Studio você possui? Deve ser incluído na maioria das edições.
Joachim Isaksson
Visual Studio 2010 e .net 4.0
Amit Pal
@AmitPal Veja minha resposta para esta pergunta para o caminho da DLL. Deve estar lá.
Agent007
5
O @AmitPal Visual Studio 2010 Express não possui essa DLL e não pode ser adicionada para fazer o teste de unidade funcionar (você precisará usar uma ferramenta de teste de terceiros como o nUnit) Se você estiver usando um profissional ou mais, consulte a resposta do agent007.
Joachim Isaksson
10

Há também um bom pacote de pepitas . Ele puxará a dll para a pasta de pacotes. Você precisará adicionar a referência à dll manualmente.

NOTA : Este pacote não é oficial da Microsoft.

Rashack
fonte
1
O pacote nuget falhou ao instalar no projeto para .net 4.0 com o VS2013. A única opção para a versão era 11.0.50727.1.
WebComer
1
Alguém pode dizer se esse nuget é realmente de propriedade da Microsoft? Parece ser um NuGet pessoal contendo asemblies Microsoft
BozoJoe
9

Para resolver esse problema, tive que fazer o seguinte:

  1. Inicie o instalador do Visual Studio com privilégios administrativos
  2. Se solicitar a instalação de atualizações no Visual Studio, faça-o antes de continuar
  3. Quando solicitado, clique no botão para modificar a instalação existente
  4. Clique na guia / cabeçalho "Componentes individuais" na parte superior
  5. Role para baixo até a seção "Depuração e teste"
  6. Marque a caixa ao lado de "Desempenho da Web e ferramentas de teste de carga"
  7. Clique no botão Modificar no canto inferior direito da caixa de diálogo para instalar as DLLs ausentes

Depois que as DLLs são instaladas, você pode adicionar referências a elas usando o método indicado pelo Agent007 em sua resposta.

S. Hooley
fonte
1
"O desempenho da Web e as ferramentas de teste de carga" não aparecem mais. O que você recomendaria que selecionássemos?
Shafiq Jetha
@ ShafiqJetha, ainda vejo a opção "Desempenho da Web e ferramentas de teste de carga". Estou usando o Visual Studio Enterprise 2017 - 15.8.9. Qual versão você está usando? Parece que a Microsoft mudou ligeiramente a interface do instalador desde que escrevi o post acima. Quando inicio o Visual Studio Installer (executando-o como Administrador), clique no botão "Mais" à direita dos botões "Atualizar" e "Iniciar", selecione "Modificar" e continue com a etapa 4 da lista em minha postagem acima.
S. Hooley 28/11
Estou usando o instalador do Build Tools para Visual Studio 2017, para que possa explicar isso.
Shafiq Jetha
@ShafiqJetha, o que você acabou usando?
Vin Shahrdar 24/03
@VinShahrdar Eu sinceramente não consigo me lembrar; isso foi há muito tempo. Acho que resolvemos o problema usando o pacote NuGet de outra pessoa para obter as DLLs necessárias. Ou talvez tenhamos salvado a DLL no repositório. Sinceramente, não me lembro, desculpe.
Shafiq Jetha 25/03
8

Se você estiver usando a Comunidade do Visual Studio 2017, o local é:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\ReferenceAssemblies\v2.0

A DLL que você deseja está lá: Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

Aparentemente, ele está localizado no C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\diretório da versão do Visual Studio 2010 Professional, mas observe que o valor 10.0será alterado para corresponder ao ano de lançamento, ou seja, o VS 2013 era a versão 12.0, o VS 2015 era a versão 14.0, o VS 2017 era a 15.0. (O VS Express não é suportado e exigiria a instalação do pacote NUnit NuGet, por meio do Gerenciador de Pacotes NuGet.)

Vá para Referências , clique com o botão direito do mouse, selecione Adicionar referência, Procurar . Navegue até o caminho e clique duas vezes no arquivo.

Então, você precisa de uma usinginstrução na parte superior da sua classe de Teste de Unidade:

using Microsoft.VisualStudio.TestTools.UnitTesting;

vapcguy
fonte
1
Por navegação, significa o botão Procurar na parte inferior, não a pasta Procurar à esquerda.
Alan Baljeu 4/04/19
@AlanBaljeu Muito verdadeiro.
vapcguy
0

Ou seja, para o Visual Studio 2013, gostaria de referenciar este assembly:

Microsoft.VisualStudio.Shell.14.0.dll

Você pode encontrá-lo, ou seja, aqui:

C: \ Arquivos de programas (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ Extensions \ BugAid Software \ BugAid \ 1.0

e não se esqueça de implementar:

using Microsoft.VisualStudio;

creg
fonte
0

Se você veio aqui porque seu trabalho de criação do VSTS está falhando com a mensagem de erro acima. Verifique se você está usando pelo menos a versão 2. * da tarefa nuget para restaurar seus pacotes.

Jim Wolff
fonte
Você sabe por que a versão 2. * é necessária? Estamos no TFS 2017 e estamos enfrentando esse erro.
precisa saber é o seguinte
Acabei de elevar o código do controle de qualidade para o UAT e agora estou testando as mesmas unittests, no mesmo computador, na mesma pasta pai, praticamente na mesma solução. mas nããão .. Nenhuma unittest encontrou de repente .... Estou tão cansado do inferno Microsofts Path que eles criaram nos últimos anos.
Christian
0

Eu tenho esse problema depois de mover um projeto e excluí-lo da pasta packages. Nuget mostrou que o MSTest.TestAdapter e o MSTest.TestFramework v 1.3.2 foram instalados. A correção parecia ser abrir o VS como administrador e criar Depois disso, fui capaz de reabrir e criar sem ter privilégios de administrador.

Kirsten Greed
fonte
0

Adicione uma referência ao 'Microsoft.VisualStudio.QualityTools.UnitTestFramework "pacote NuGet e ele deve ser construído com êxito.

Sanjeev Kumar
fonte
Tenho certeza de que as outras sete entradas sugerindo esta solução exata não chegam aos leitores. A repetição é ainda melhor quando você a repete.
Christian
0

Com o Visual Studio 2019, executando um projeto .net core 3.1, você precisará instalar a estrutura de teste mais recente para resolver o erro.

A maneira mais fácil de fazer isso é passar o mouse sobre uma anotação [Teste] (sublinhada em vermelho) e selecionar as correções sugeridas. O necessário é "procurar e instalar a estrutura de teste mais recente".

Stanley Tonkonogy
fonte
-4

Basta consultar este URL e baixar e salvar os arquivos DLL necessários neste local:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies

URL é: https://github.com/NN---/vssdk2013/find/master

Veer
fonte