Desejo usar mstest.exe para executar meu teste de unidade no servidor de compilação, mas não desejo instalar o Visual Studio no servidor de compilação. Posso apenas instalar o MSTest sem o Visual Studio?
Desejo usar mstest.exe para executar meu teste de unidade no servidor de compilação, mas não desejo instalar o Visual Studio no servidor de compilação. Posso apenas instalar o MSTest sem o Visual Studio?
Respostas:
É possível executar mstest.exe sem o Visual Studio.
Baixe um dos Agentes para ISO do Visual Studio abaixo e instale o Agente de Teste no servidor:
Estúdio 2017 Visual (espaço em disco 127MB, menor do que para download)
Visual Studio 2015 (instalação de 128 MB, espaço em disco são necessários 2 GB)
Visual Studio 2012 (224MB)
Visual Studio 2013 (287MB)
Visual Studio 2010 (515MB)
Isso instala tudo o que é necessário para executar mstest.exe a partir da linha de comando e é muito mais leve do que o Visual Studio. Download de cerca de 500 MB e cerca de 300 MB para instalar apenas o agente de teste, se bem me lembro.
ATUALIZAR
Para versões anteriores ao VS 2017, veja aqui:
Essa resposta se refere especificamente ao Visual Studio 2017 e a resposta é sim . Esteja ciente, entretanto, que a Microsoft (ainda) não fornece nenhum tipo de API oficial para localizar os executáveis relevantes ( MSBuild.exe
e MSTest.exe
), portanto, você não consegue ler as chaves do registro e / ou sondar vários diretórios para localizar esses arquivos . Voce foi avisado.
MSTest.TestFramework
nesses projetos e remova a referência a Microsoft.VisualStudio.QualityTools.UnitTestFramework
deles. Agora tudo o que você precisa é instalar as Ferramentas de Compilação do Visual Studio 2017 e invocar msbuild.exe
para executar a compilação.MSTest.exe
e para o vstest.console.exe
qual você poderá recorrer. Observe que descobrir onde residem esses executáveis é uma dor, porque eles não existirão na mesma estrutura de diretórios das MSBuild.exe
Ferramentas de Construção.Finalmente, e muito importante: se você usa MSTest.TestFramework
e ainda precisa ser capaz de descobrir e executar testes de dentro do IDE do Visual Studio, também precisará MSTest.TestAdapter
instalar em seu (s) projeto (s) de teste de unidade.
1: Embora o VS2017 suporte instalações lado a lado, ele usa uma única chave de registro que registra apenas a instalação mais recente. Portanto, se você instalar o Test Agent por último, a chave apontará para seu diretório de instalação ... mas o Test Agent não inclui MSBuild.exe
, portanto, qualquer código que dependa dessa chave de registro para descobrir o caminho do executável falhará. Por que a Microsoft não poderia ter tornado o Agente de Teste uma parte opcional das Ferramentas de Construção (para que todos os EXEs vivam na mesma hierarquia de diretório), ninguém sabe.
File extension specified '.webtest' is not a valid test extension.
comigo.
vswhere
é melhor do que nada, mas você ainda deve fazer uma suposição de onde o MSBuild está localizado em relação ao diretório de instalação do VS ... se (quando?) A Microsoft decidir realocar qualquer um desses executáveis, essa suposição não é mais válida . Por que a Microsoft não pode ou não quer criar uma maneira programática de obter o caminho para MSBuild / MSTest / VSTest (em oposição ao diretório de instalação do VS, com o qual ninguém realmente se importa) permanece além de mim.
No test is available in C:\Users\..\Desktop\MyExeName.exe...
. Eu abri uma pergunta no SO . Se você tem alguma pista, eu agradeço sua ajuda.
Eu acho que você provavelmente pode, mas definitivamente não é compatível.
Encontrei este artigo de blog escrito por alguém que afirma ter o MSTest funcionando sem o Visual Studio instalado.
@crocpulsar, você precisa instalar o Visual Studio em seu servidor de compilação, mas NÃO precisa comprar uma licença adicional .
Existem muitas dependências para fazer o build & MSTest funcionar sem o VS instalado, e definitivamente não é suportado.
Contanto que a pessoa que inicia a construção tenha uma licença, você não precisa de uma para o servidor de construção. Esse tem sido o caso desde os dias sombrios de 2005 e, enquanto houver paridade de edição, você está OK.
Se todos em sua equipe tiverem o Ultimate, você poderá instalá-lo no servidor de compilação; mas se um dos membros da sua equipe tiver Premium, você deve instalar o Premium no servidor de compilação. Isso também permite muitos outros bits, como cobertura de código, análise de impacto de teste e validação de arquitetura, entre outros.
Acabei de fazer isso funcionar em meus servidores sem instalar o Visual Studio 2017 IDE. Minha exigência era
Eu tive que fazer uma combinação de algumas coisas declaradas em outras respostas e também outra aqui .
VS2017:
A etapa 3 foi corrigir o seguinte problema:
"Não foi possível resolver esta referência. Não foi possível localizar o assembly" Microsoft.VisualStudio.QualityTools.UnitTestFramework ""
O que então causou:
"erro CS0234: O tipo ou nome de namespace 'VisualStudio' não existe no namespace 'Microsoft' (falta uma referência de assembly?)"
Não precisei adicionar nenhuma referência ao projeto. No entanto, o caminho para vstest.console.exe está contido na pasta TestAgent (para mim era "C: \ Arquivos de programas (x86) \ Microsoft Visual Studio \ 2017 \ TestAgent \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TestWindow" )
Aqui estão as etapas que executei para fazer com que meu servidor de compilação executasse o MsTest sem instalar o VS 2012:
Registre 'msdia110.dll' com c: /windows/syswow64/regsvr32.exe / i '../mstest/assemblies/msdia110.dll'(Isso gerou um erro, mas por algum motivo ainda funcionou. Executei alguns vezes e tentei diferentes versões do regsvr32.exe antes de verificar, mas está lá no registro)
Adicione a variável de ambiente 'MSTEST_HOME' e defina-a como 'c: \ dev \ mstest \' ou em seu caminho. Usei a variável de ambiente em meu script de construção.
Erro de execução de depuração de MsTest:
Adicionar a 'MsTest.exe.config'
<system.diagnostics>
<trace autoflush="true" indentsize="4">
<listeners>
<add name="EqtListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="C:\MsTest.log" />
</listeners>
</trace>
<switches>
<add name="EqtTraceLevel" value="Verbose" />
</switches>
</system.diagnostics>
Se você precisar executar a ferramenta webtest mstest.exe, poderá instalar a versão de avaliação do Visual Studio Enterprise e certificar-se de executá-la pelo menos uma vez (basta iniciá-la) na conta na qual o teste será executado, sem necessidade de fazer nada adicional. Portanto, se o seu teste for executado na conta do sistema, você precisará usar algo como abaixo
PS C:\agent> psexec -s cmd.exe
C:\Windows\system32>"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\mstest.exe"
Microsoft (R) Test Execution Command Line Tool Version 15.0.27520.0
Copyright (c) Microsoft Corporation. All rights reserved.
Please specify tests to run, or specify the /publish switch to publish results.
For switch syntax, type "MSTest /help"
O MSTest foi anunciado para usuários do .NET Core . O anúncio tem exemplo de uso com a dotnet
ferramenta. Eu não descobri como obter o mstest
executável autônomo .