Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O modo de servidor MTP permite que um editor, uma IDE ou outra ferramenta de teste inicie uma aplicação de teste e controle a descoberta e a execução via JSON-RPC. Use o modo de servidor ao criar ferramentas em torno de MTP. Para execuções normais de linha de comando e CI, execute o aplicativo de teste diretamente ou use dotnet test.
Inicie o servidor de JSON-RPC público com --server ou --server jsonrpc.
Importante
O SDK do .NET usa um protocolo binário interno separado por meio de --server dotnettestcli. Não passe esse valor você mesmo.
dotnet test configura os argumentos de transporte e protocolo.
Use o cliente somente de origem
A partir do MTP 2.4.0, o pacote Microsoft.Testing.Platform.ServerMode.Client.Sources disponibiliza um cliente canônico para o protocolo JSON-RPC. O pacote injeta código-fonte em C# no seu projeto em vez de adicionar um assembly em tempo de execução.
O design baseado apenas na fonte fornece:
- Nenhuma DLL de runtime ou dependência de implantação adicional.
- Serialização sem reflexão compatível com AOT nativo.
- Tipos de protocolo e código de serialização do mesmo repositório que o servidor MTP.
Os tipos IMtpServerClient e MtpServerClient injetados podem inicializar uma conexão, descobrir testes, executar testes, solicitar o encerramento do servidor e relatar atualizações do nó de teste. Os tipos permanecem internal no seu assembly.
Atender aos requisitos do cliente
Use C# 12 ou mais recente. O pacote define LangVersion como 12.0 quando seu projeto não especifica uma versão da linguagem. Ele também fornece tipos de compatibilidade interna para .NET Framework 4.6.2 e netstandard2.0.
Remova qualquer cópia escrita à mão do cliente MTP antes de adicionar o pacote para evitar tipos internos duplicados.
Escolher o comportamento da conexão
Defina MtpServerClientOptions.IsStateful para informar ao servidor se o cliente preserva o estado entre solicitações:
- Deixe o valor
falsepara uma única solicitação de descoberta ou execução seguida de saída. - Defina o valor como
truepara uma sessão de editor ou de IDE que envia várias solicitações na mesma conexão.
O cliente envia essa configuração por meio da funcionalidade de protocolo experimental capabilities.testing.isStateful .