GameTest

De Minecraft Wiki
Ir para navegação Ir para pesquisar
"Teste" redireciona aqui. Para o comando, veja Comandos/test.
"GameTest" redireciona aqui. Para o comando, veja Comandos/gametest.
Esse recurso é exclusivo para a Edição Java.
 
Esse artigo descreve um conteúdo que está atualmente em desenvolvimento na Edição Java.
 
Este conteúdo apareceu em versões de desenvolvimento da Edição Java 1.21.5, mas a atualização completa que o contém ainda não foi lançada.

"GameTest" (lit. Teste de Jogo) é um framework para testes ponta-a-ponta (E2E) automatizado para os aspectos de teste do Minecraft. Cada teste contém uma estrutura, parâmetros para como o teste deve ser executado, e código opcional para especificar melhor o comportamento do teste.

Edição Java

[editar | editar código-fonte]

Ponto de entrada .jar do GameTest

[editar | editar código-fonte]

O ponto de entrada net.minecraft.gametest.Main é incluído no server.jar que inicia um servidor, executa todos os testes de jogo disponíveis e então sai.

Você pode invocar esse ponto de entrada com:

$ java -DbundlerMainClass="net.minecraft.gametest.Main" -jar server.jar [<options>]

As opções disponíveis são:

  • --help - Exibe informações de uso
  • --packs <path> - Define uma pasta de pacotes de dados a ser incluído no mundo
    • Qualquer arquivo .zip ou pasta com um arquivo pack.mcmeta é incluído
  • --report <path> - Exporta os resultados num relatório XML parecido com junit no caminho especificado
  • --tests <selection> - Especifica quais testes serão executados com uma seleção - uma expressão coringa que iguala os IDS de instância no espaço nominal de teste
    • Se omitido, ou usado com um ID vazio, então executa todos os testes
  • --universe <path> - O caminho na qual o mundo teste do servidor será criado
    • Qualquer pasta já existente será substituída
    • Por padrão: gametestserver
  • --verify <boolean> - Habilita a verificação do teste
    • Executa os testes especificados com test ou testNamespace 100 vezes a cada passo de rotação de 90 graus
    • Por padrão: false

Código de saída

[editar | editar código-fonte]

O jogo gerará os seguintes códigos de saída a depender do cenário:

Cenário Código de saída
Todos os testes passaram 0
Qualquer teste falhou (número de falhas)
Servidor desligou sem iniciar os testes -1
Jogo falhou 1

Instância de teste

[editar | editar código-fonte]
A interface do Bloco de Instância de Teste.

Uma instância de teste pode ser definida em um pacote de dados ao criar um arquivo JSON no registro test_instance. Você pode inspecionar a informação sobre eles usando um BlockSprite test-instance-block.png: Imagem de sprite de "test-instance-block" no Minecraft que liga a bloco de instância de testebloco de instância de teste. Uma instância de teste possui as seguintes propriedades:

  • Pertence ao ambiente de teste, que agrupa o teste e especifica melhor o ambiente onde o teste está executando. ( batch)
  • É associado com a  structure, que deve conter todos os blocos e as entidades que ela necessita executar. A estrutura pode ser facilmente alterada com um bloco de instância de teste.
  • Pode ser tanto um teste baseado em bloco ou um teste de função. Mais informações estão disponíveis abaixo.

Há mais configurações disponíveis para instâncias de teste. Para mais informações sobre o formato, veja Definição de instância de teste.

Baseado em bloco

[editar | editar código-fonte]

Em testes baseados em bloco, os blocos de teste são usados dentro da estrutura de teste para controlar a lógica do teste usando um sinal de redstone.

  • BlockSprite test-block-start.png: Imagem de sprite de "test-block-start" no Minecraft Iniciar: Um pulso de redstone é acionado quando o teste se inicia.
  • BlockSprite test-block-log.png: Imagem de sprite de "test-block-log" no Minecraft Registrar: Registra uma mensagem ao arquivo de registro quando energizado pela redstone.
  • BlockSprite test-block-fail.png: Imagem de sprite de "test-block-fail" no Minecraft Falhar: Falha o teste quando energizado pela redstone.
  • BlockSprite test-block-accept.png: Imagem de sprite de "test-block-accept" no Minecraft Aceitar: Completa o teste quando energizado pela redstone.

Quando uma condição de corrida ocorrer, o primeiro bloco de teste ativado sempre ganha.

Os testes de "função" dependem de funções integradas para determinar o sucesso ou falha de um teste. Eles são feitos para serem usados pela Mojang internamente ou por desenvolvedores de mods.

O campo  function na definição de instâncai de teste deve conter a localização de recurso da função do teste.

É recomendado usar um mod loader e sua respectiva API fornecida para usar os testes de função. Atualmente, nenhum grande mod laoder suporta testes de função.

Ambiente de teste

[editar | editar código-fonte]

O ambiente de teste é uma maneira de agrupar instâncias de teste e dar a elas as pré-condições corretas para executar. Ele pode ser definido em um pacote de dados criando um arquivo JSON no registro test_instance ou especificando na mesma linha diretamente com o campo  batch.

Esta seção desse artigo está vazia.
 
Você pode ajudar expandindo-a.

Edição Bedrock

[editar | editar código-fonte]

Os conjuntos de construção dos "GameTests" requer um pacote de comportamento e escrever códigos simples em JavaScript.

9 de novembro de 2020Henrik Kniberg demonstrou os "GameTests", uma framework de teste usada internamente pela Mojang no canal do YouTube "Agile with Jimmy".
Edição Java
1.1519w34aReferências ao "GameTest" foram adicionadas ao código do jogo. A maior parte da framework é despojada já que o resto do jogo não depende dela.
1.1721w13aO código relacionado ao "GameTest" agora é exposto para uso aos desenvolvedores de mods pois partes não utilizadas do código não são mais removidas.
Em breve na Edição Java
1.21.525w03aA framework "GameTest" foi revisada.
Foi introduzida para uso com pacote de dados.
Edição Bedrock
1.16.210beta 1.16.210.60A framework "GameTest" foi adicionada.