Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O modo servidor MTP permite que um editor, IDE ou outra ferramenta de teste lance uma aplicação de teste e conduza a descoberta e execução através de JSON-RPC. Usa o modo servidor quando construíres ferramentas em torno do MTP. Para execuções normais de linha de comandos e CI, execute a aplicação de teste diretamente ou use dotnet test.
Inicie o servidor público de JSON-RPC com --server ou --server jsonrpc.
Importante
O SDK .NET utiliza um protocolo binário interno separado através de --server dotnettestcli. Não passes esse valor tu próprio.
dotnet test configura os argumentos de transporte e protocolo.
Utilize apenas o cliente 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 C# no seu projeto em vez de adicionar uma assemblagem em tempo de execução.
A conceção apenas de origem proporciona o seguinte:
- Sem DLL em tempo de execução ou dependência adicional de implementação.
- Serialização nativa compatível com AOT, sem reflexão.
- Tipos de protocolo e código de serialização provenientes do mesmo repositório do servidor MTP.
Os tipos IMtpServerClient e MtpServerClient injetados podem inicializar uma conexão, descobrir testes, executar testes, solicitar o encerramento do servidor e comunicar atualizações sobre o nó de teste. Os tipos permanecem internal na sua montagem.
Cumprir os requisitos do cliente
Usa C# 12 ou mais tarde. O pacote define LangVersion como 12.0 caso o seu projeto não especifique uma versão da linguagem. Também fornece tipos de compatibilidade interna para o .NET Framework 4.6.2 e netstandard2.0.
Remova qualquer cópia manuscrita do cliente MTP antes de adicionar o pacote para evitar tipos internos duplicados.
Escolher comportamento de ligação
Definir MtpServerClientOptions.IsStateful para indicar ao servidor se o cliente preserva o estado entre solicitações:
- Deixe o valor
falsepara um único pedido de descoberta ou execução seguido de saída. - Defina o valor como
truepara uma sessão de editor ou IDE que envie múltiplos pedidos na mesma ligação.
O cliente envia esta configuração através da capacidade do protocolo experimental capabilities.testing.isStateful .