GameTest
"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>]
Opções
[editar | editar código-fonte]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
- Qualquer arquivo .zip ou pasta com um arquivo
--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
testoutestNamespace100 vezes a cada passo de rotação de 90 graus - Por padrão:
false
- Executa os testes especificados com
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]
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
bloco 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.
Iniciar: Um pulso de redstone é acionado quando o teste se inicia.
Registrar: Registra uma mensagem ao arquivo de registro quando energizado pela redstone.
Falhar: Falha o teste quando energizado pela redstone.
Aceitar: Completa o teste quando energizado pela redstone.
Quando uma condição de corrida ocorrer, o primeiro bloco de teste ativado sempre ganha.
Função
[editar | editar código-fonte]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.
Comando
[editar | editar código-fonte]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.
Histórico
[editar | editar código-fonte]| 9 de novembro de 2020 | Henrik Kniberg demonstrou os "GameTests", uma framework de teste usada internamente pela Mojang no canal do YouTube "Agile with Jimmy". | ||||||
|---|---|---|---|---|---|---|---|
| Edição Java | |||||||
| 1.15 | 19w34a | Referê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.17 | 21w13a | O 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.5 | 25w03a | A framework "GameTest" foi revisada. | |||||
| Foi introduzida para uso com pacote de dados. | |||||||
| Edição Bedrock | |||||||
| 1.16.210 | beta 1.16.210.60 | A framework "GameTest" foi adicionada. | |||||
Navegação
[editar | editar código-fonte]| Edições |
| ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Desenvolvimento |
| ||||||||
| Técnico |
| ||||||||
| Multijogador | |||||||||
| Características exclusivas |
| ||||||||
| Removido | |||||||||