diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:42:52 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:42:52 -0500 |
commit | 074785cea106179cb3305637055ab0a009ca74f2 (patch) | |
tree | e6ae371cccd642aa2b67f39752a2cdf1fd4eb040 /files/pt-br/archive/b2g_os/automated_testing | |
parent | da78a9e329e272dedb2400b79a3bdeebff387d47 (diff) | |
download | translated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.gz translated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.bz2 translated-content-074785cea106179cb3305637055ab0a009ca74f2.zip |
initial commit
Diffstat (limited to 'files/pt-br/archive/b2g_os/automated_testing')
7 files changed, 902 insertions, 0 deletions
diff --git a/files/pt-br/archive/b2g_os/automated_testing/configurando_marionette/index.html b/files/pt-br/archive/b2g_os/automated_testing/configurando_marionette/index.html new file mode 100644 index 0000000000..d9912fcfd5 --- /dev/null +++ b/files/pt-br/archive/b2g_os/automated_testing/configurando_marionette/index.html @@ -0,0 +1,28 @@ +--- +title: Configurando o Marionette para Firefox OS +slug: Archive/B2G_OS/Automated_testing/Configurando_Marionette +translation_of: 'https://marionette-client.readthedocs.io/en/latest/' +--- +<h2 id="Configurando_o_cliente_Marionette">Configurando o cliente Marionette</h2> +<p>O cliente Marionette é um pacote Python no qual você pode executar testes do Marionette: testes Python, JavaScript e WebAPI. Você precisa configurá-lo antes de usá-lo.</p> +<p>Para fazer isso, você deve clonar uma árvore do Gecko. Tanto o Gecko dentro da árvore clonada do Firefox OS como um Gecko <em>standalone</em> (<a href="http://hg.mozilla.org/mozilla-central/" title="http://hg.mozilla.org/mozilla-central/">mozilla-central</a>) funcionará. Por exemplo, supondo que seja a primeira vez que você clone a árvore Gecko:</p> +<p>Se o Mercurial não estiver instalado, instale-o. O comando abaixo deve ser usado no Mac caso você tenha o Homebrew instalado.</p> +<p><code>$ brew install mercurial</code></p> +<p>No seu diretório de trabalho (por exemplo ~/code) digite isso para realmente iniciar o processo de clonagem:</p> +<p><code>$ hg clone http://hg.mozilla.org/mozilla-central/ $GECKO_DIR</code></p> +<p>... onde $GECKO_DIR pode ser qualquer nome de diretório válido, por exemplo, <code>mozilla-central</code>. Isso levará cerca de 10 minutos numa conexão rápida.</p> +<p>Veja o artigo <a href="/pt-BR/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS">Compilando e Instalando o Firefox OS</a> para detalhes de como configurar um ambiente de compilação do Firefox OS e baixar o código.</p> +<pre>$ cd $GECKO_DIR/testing/marionette/client + +$ python setup.py develop</pre> +<p>É recomendado que você use o <a href="/pt-BR/docs/Python/Virtualenv" title="/en-US/docs/Python/Virtualenv">virtualenv</a>. Configurando rapidamente o virtualenv:</p> +<p><code>$ pip install virtualenv</code></p> +<p><code>$ virtualenv $MARIONETTE_ENV</code></p> +<p>Novamente, <code>$MARIONETTE_ENV</code> pode ser qualquer nome de diretório válido. Agora você pode executar os passos acima mas no novo ambiente virtual com:</p> +<pre>$ cd $GECKO_DIR/testing/marionette/client + +$ $MARIONETTE_ENV/bin/python setup.py develop</pre> +<p>Para verificar se o Marionette está instalado:</p> +<pre>$ $MARIONETTE_ENV/bin/python +>>> from marionette import Marionette</pre> +<p>Veja <a href="/pt-BR/docs/Mozilla/QA/Marionette/Running_Tests" title="/pt-BR/docs/Marionette/Running_Tests">Executando testes com Marionette</a> para saber como executar testes com o Marionette configurado.</p> diff --git a/files/pt-br/archive/b2g_os/automated_testing/gaia-ui-tests/index.html b/files/pt-br/archive/b2g_os/automated_testing/gaia-ui-tests/index.html new file mode 100644 index 0000000000..41b8373d7d --- /dev/null +++ b/files/pt-br/archive/b2g_os/automated_testing/gaia-ui-tests/index.html @@ -0,0 +1,82 @@ +--- +title: Introdução aos testes de IU do Gaia +slug: Archive/B2G_OS/Automated_testing/gaia-ui-tests +tags: + - B2G + - Build documentation + - Firefox OS + - Gaia + - Guide + - Mobile + - NeedsTranslation + - Testing + - TopicStub + - gaia-ui-test + - gaiatest +translation_of: Archive/B2G_OS/Automated_testing/gaia-ui-tests +--- +<p>{{Next("Mozilla/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_1_Marionette_Firefox_OS_start")}}</p> +<div class="summary"> + <p>Gaia-ui-tests é uma suite de testes da Mozilla para executar casos de testes de IU (Interface do Usuário) end-to-end no Gaia, a Interface do Usuário do Firefox OS. Todos os testes são escritos em Python com algum JavaScript usado para interagir com as APIs do Firefox OS. Esse conjunto de tutoriais explica como configurar o ambiente para escrever e executar os testes.</p> +</div> +<p>Gaia-ui-tests usa <strong>Gaiatest</strong>, um pacote Python baseado no <a href="https://developer.mozilla.org/en-US/docs/Marionette" title="https://developer.mozilla.org/en-US/docs/Marionette">Marionette</a>. Gaiatest é projetado para empacotar HTML locators, chamadas ao Marionette e APIs para uma comunicação interoperável. Marionette é baseado em padrões W3C e desenvolvido pela <a href="http://docs.seleniumhq.org/projects/webdriver/" title="http://docs.seleniumhq.org/projects/webdriver/">Selenium WebDriver</a> uma interface de programas para automação de navegador. Se você já usou WebDriver e objetos page/app você vai achar muito fácil usar o Marionette e gaiatest.</p> +<h2 id="Iniciando_os_testes_de_IU_do_Gaia">Iniciando os testes de IU do Gaia</h2> +<p>Para aqueles interessados em começar com testes automáticos no Gaia/Firefox OS nós temos uma série de tutoriais que ajudará a escrever seus próprios testes. Uma vez que você completou esse tutorial você terá conhecimento o suficiente sobre teste, Firefox OS e Marionette para iniciar como um testador da Mozilla. É <strong>altamente</strong> recomendado que você complete esse tutorial se você deseja tornar-se um contribuidor.</p> +<dl> + <dt> + <a href="/pt-BR/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_1_Marionette_Firefox_OS_start">Parte 1: Iniciando com o Marionette e Firefox OS</a></dt> + <dd> + Esse artigo cobre a instalação das ferramentas que você vai precisar para executar os testes como B2G Desktop, Python e o Marionette.</dd> + <dt> + <a href="/pt-BR/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_2_Marionette_Firefox_OS_interactions">Parte 2: Interações básicas com o Firefox OS usando o Marionette</a></dt> + <dd> + Uma visão geral dos comandos básicos que você usará para manipular o Firefox OS via Marionette.</dd> + <dt> + <a href="/pt-BR/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_3_Reusable_tests">Parte 3: Atualizando nosso código em um teste reusável</a></dt> + <dd> + Seguindo em frente, nesse artigo nós montaremos alguns comandos básicos dentro de um teste simples num arquivo Python para que possam ser executados como uma única entidade.</dd> + <dt> + <a href="/pt-BR/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_4_Reusing_commands_Firefox_OS_setup">Parte 4: Reutilizando comandos para configurar Firefox OS</a></dt> + <dd> + Aqui veremos alguns comandos nos métodos Python para promover a reutilização de código.</dd> + <dt> + <a href="/pt-BR/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_5_Introducing_a_test_runner">Parte 5: Introduzindo um executor de teste</a></dt> + <dd> + Um executor de teste (<em>test runner</em>) é um recurso central de qualquer boa suíte de testes, possibilitando a você executar múltiplos testes e reportar resultados agregados. Nesse artigo vamos explorar o básico do executor de teste em Python unittest.</dd> + <dt> + <a href="/pt-BR/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_6_Marionette_By_class">Parte 6: Usando tuplas e a classe By do Marionette</a></dt> + <dd> + Será explicado como reduzir duplicação de código, armazenando locators repetidos em tuplas e simplificando a sintaxe com a classe <code>By</code>.</dd> + <dt> + <a href="/pt-BR/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_7_Writing_your_own_tests">Parte 7: Writing your own tests</a></dt> + <dd> + Agora que você já sabe o básico, é hora de escrever seus próprios testes! Aqui nós fornecemos algumas recomendações para tornar o trabalho mais fácil e sugerimos alguns testes para você mesmo tentar e escrever.</dd> + <dt> + <a href="/pt-BR/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_8_Using_a_base_class">Parte 8: Usando uma classe base</a></dt> + <dd> + Nesse estado atual, nosso arquivo de teste contém todo o código para o executor de teste. Isso está ok por enquanto, mas assim que você começar a executar muitos arquivos de teste haverá muita duplicação. Aqui nós solucionamos esse problema abstraindo o código do executor de testes em classes Python seperadas.</dd> + <dt> + <a href="/pt-BR/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_9_app_objects">Parte 9: Reduzindo a duplicação com objetos app</a></dt> + <dd> + Como um melhoramento final a manutenção do código, nesse artigo vamos explorar código abstrato que manipula a interação com aplicativos específicos do Firefox OS nos objetos app do Python.</dd> +</dl> +<h2 id="Tópicos_avançados">Tópicos avançados</h2> +<p>Uma vez que você já conhece o básico para escrever e executar os testes, você vai querer avançar em um trabalho mais avançado, como executar a suíte completa do gaia-ui-tests, ou o registro do consumo de energia como o resultado de um teste.</p> +<dl> + <dt> + <a href="https://developer.mozilla.org/pt-BR/docs/Mozilla/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Gaia_UI_Tests_Run_Tests" title="Gaia UI Tests Run Tests">Executando gaia-ui-tests</a></dt> + <dd> + Guias para executar a suíte gaia-ui-tests em dispositivos Firefox OS reais e no <a href="/pt-BR/Firefox_OS/Using_the_B2G_desktop_client">B2G Desktop</a> em uma variedade de configurações.</dd> + <dt> + <a href="/pt-BR/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Gathering_power_draw_data_using_gaiatest">Coletando dados de consumo de energia</a></dt> + <dd> + Como usar o gaiatest para registrar o consumo de energia durante a execução do teste.</dd> +</dl> +<h2 id="Veja_também">Veja também</h2> +<p><a href="https://github.com/mozilla-b2g/gaia/tree/master/tests/python/gaia-ui-tests">Repositório principal do Gaia-ui-tests</a></p> +<h2 id="Questões_e_comentários">Questões e comentários</h2> +<p>Esse projeto está em um estágio inicial, então seu feedback será muito útil para nós:</p> +<ul> + <li>Envie emails para a lista <a href="http://mailto:_gaia-ui-automation@mozilla.org">gaia-ui-automation@mozilla.org</a>.</li> + <li>Alternativamente encontre-nos no <a href="https://wiki.mozilla.org/IRC">Mozilla IRC</a> nos canais #ateam, #mozwebqa, e #moztpeqa.</li> +</ul> diff --git a/files/pt-br/archive/b2g_os/automated_testing/gaia-ui-tests/parte_1_iniciando_marionette_firefox_os/index.html b/files/pt-br/archive/b2g_os/automated_testing/gaia-ui-tests/parte_1_iniciando_marionette_firefox_os/index.html new file mode 100644 index 0000000000..e06d4b7707 --- /dev/null +++ b/files/pt-br/archive/b2g_os/automated_testing/gaia-ui-tests/parte_1_iniciando_marionette_firefox_os/index.html @@ -0,0 +1,97 @@ +--- +title: 'Parte 1: Iniciando com o Marionette e Firefox OS' +slug: >- + Archive/B2G_OS/Automated_testing/gaia-ui-tests/Parte_1_Iniciando_Marionette_Firefox_OS +translation_of: >- + Archive/B2G_OS/Automated_testing/gaia-ui-tests/Part_1_Marionette_Firefox_OS_start +--- +<p>{{PreviousNext("Mozilla/Firefox_OS/Platform/Automated_testing/gaia-ui-tests", "Mozilla/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_2_Marionette_Firefox_OS_interactions")}}</p> +<div class="summary"> + <p><span class="seoSummary">Esse serie de tutoriais tem como objetivo ensiná-lo a escrever e executar testes automatizados de IU (Interface de Usuário) para o Firefox OS usando o <a href="/pt-BR/docs/Mozilla/QA/Marionette">Marionette</a>, um pacote de automação de testes que é executado no seu computador. Marionette envia comandos para executar testes em plataformas baseadas no Gecko. Esse artigo em particular apresentará as configurações necessárias antes de iniciar a execução dos testes.</span></p> +</div> +<p>A série de tutoriais navegará pelos conceitos de automação de testes e também fará uma introdução de como trabalhar com o Firefox OS (incliundo a ferramenta de testes <a href="/pt-BR/Firefox_OS/Using_the_B2G_desktop_client">B2G Desktop</a>) e o Marionette. Ocasionalmente nós incluiremos alguns desafios para o encorajar a encontrar suas próprias soluções.</p> +<div class="note"> + <p><strong>Nota</strong>: O tutorial não é específico para produtos Mozilla, se você estiver desenvolvendo um aplicativo HTML5, por exemplo, você pode usar esse tutorial para construir um framework de testes.</p> +</div> +<h2 id="Softwares_necessários_para_esse_tutorial">Softwares necessários para esse tutorial</h2> +<p>Durante esse tutorial nós instalaremos os seguintes softwares:</p> +<ul> + <li>Python 2.7</li> + <li>pip installer</li> + <li>Um editor de texto ou IDE para escrever código</li> + <li>O cliente Boot2Gecko desktop (Firefox OS)</li> + <li>O cliente Marionette (WebDriver client para Firefox OS)</li> +</ul> +<h2 id="Python_e_pip">Python e pip</h2> +<p>Alguns sistemas operacionais como Linux já vêm com o Python pré-instalado. Antes de instalar o Python, verifique se já não está instalado. A partir de uma linha de comando execute:</p> +<pre class="brush: bash">python --version</pre> +<p>Qualquer versão do Python 2.6.x or 2.7.x é adequada para esse tutorial. Se você não tem o Python 2.7 instalado você pode encontrar o instalador <a href="https://www.python.org/download/releases/2.7.6/">nesse site</a>.</p> +<p>Pip é usado para instalar ferramentas do Python e vamos precisar dele para instalar o Marionette. Você pode verificar se o pip está instalado digitando <code>pip</code> no seu terminal ou linha de comando. Para instalar o pip, siga as instruções da <a href="http://pip.readthedocs.org/en/latest/installing.html">documentação pip</a>.<br> + </p> +<h2 id="B2G_Desktop">B2G Desktop</h2> +<p>O cliente B2G Desktop possibilita você executar o Gaia — a Interface do Usuário do Firefox OS — e os aplicativos do Firefox OS num desktop ou notebook. Existem algumas certas limitações da ferramenta — ela não emula o hardware do dispositivo como câmera, bateria, etc. — mas será perfeita para nosso propósito nesse tutorial.</p> +<p>Baixe a última versão do B2G Desktop no <a href="http://nightly.mozilla.org/">site Firefox Nightly</a> (veja Desktop Boot2Gecko, na parte de baixo). Uma vez baixado, extraia os conteúdos em um diretório do seu computador. Para iniciar o simulador do Firefox OS, execute o script <strong>b2g</strong> de acordo com o seu Sistema Operacional:</p> +<ul> + <li><strong>Linux</strong>: Navegue no diretório no qual você extraiu o conteúdo e execute <code>./b2g</code></li> + <li><strong>Mac</strong>: Arraste B2G.app para a pasta Application e execute-o a partir dali.</li> + <li><strong>Windows</strong>: Execute b2g.exe a partir do diretório de extração.</li> +</ul> +<p>Ao iniciar a aplicação você verá uma tela semelhante a essa:</p> +<p><img alt="A welcome screen for Firefox OS - says welcome in multiple languages" src="https://mdn.mozillademos.org/files/7207/b2g-start-screen.png" style="width: 322px; height: 509px; display: block; margin: 0px auto;"></p> +<p>Seguindo os passos da rotina de primeiro uso, você chegará à tela inicial do Firefox OS. Observe que você pode emular os botões externos do telefone, o que pode ser bastante útil.</p> +<table class="standard-table"> + <thead> + <tr> + <th scope="row"> </th> + <th scope="col"> + <p>Teclado Windows/Linux</p> + </th> + <th scope="col"> + <p>Teclado Mac OS</p> + </th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row"> + <p>Botão Home</p> + </th> + <td> + <p>Home</p> + </td> + <td> + <p>Fn+seta esquerda</p> + </td> + </tr> + <tr style="height: 0px;"> + <th scope="row"> + <p>Botão Power</p> + </th> + <td> + <p>End</p> + </td> + <td> + <p>Fn+seta direita</p> + </td> + </tr> + <tr> + <th scope="row"> + <p>Volume up/down</p> + </th> + <td> + <p>Page up/page down</p> + </td> + <td> + <p>Fn+ setas cima/baixo</p> + </td> + </tr> + </tbody> +</table> +<p>Nesse ponto você pode deixar o B2G Desktop aberto e mover a janela para o lado. A seguir finalizaremos o trabalho instalando o Marionette.</p> +<h2 id="Marionette">Marionette</h2> +<p>Marionette possui duas partes: o cliente — que é executado no seu notebook — e o servidor — que é executado no Firefox OS. O Servidor Marionette, da mesma forma que o manipulador de uma marionete, pode controlar o Firefox OS diretamente.</p> +<p><img alt="marionette architecture showing marionette server inside Firefox OS and marionette client on its own outside" src="https://mdn.mozillademos.org/files/7223/marionette-basic-diagram.png" style="width: 352px; height: 186px; display: block; margin: 0px auto;"></p> +<p>Ao usar o Desktop B2G, o servidor Marionette já está pré-instalado (isso também é verdade quando usamos a compilação configurada pela engenharia em um dispositivo real do Firefox OS). Antes de controlarmos o Firefox OS, precisamos instalar o cliente Marionette no nosso computador local. Isso é feito executando o seguinte comando no seu terminal:</p> +<pre class="brush: bash">pip install marionette_client</pre> +<p>Isso é só por enquanto. Já temos o ambiente configurado e prontos para começar!</p> +<p> </p> diff --git a/files/pt-br/archive/b2g_os/automated_testing/gaia-ui-tests/testes_iu_gaia_executando_testes/index.html b/files/pt-br/archive/b2g_os/automated_testing/gaia-ui-tests/testes_iu_gaia_executando_testes/index.html new file mode 100644 index 0000000000..c9c8f371b2 --- /dev/null +++ b/files/pt-br/archive/b2g_os/automated_testing/gaia-ui-tests/testes_iu_gaia_executando_testes/index.html @@ -0,0 +1,242 @@ +--- +title: 'Testes da Interface do Usuario (IU) Gaia: Executando os Testes' +slug: >- + Archive/B2G_OS/Automated_testing/gaia-ui-tests/Testes_IU_Gaia_Executando_Testes +translation_of: Archive/B2G_OS/Automated_testing/gaia-ui-tests/Gaia_UI_Tests_Run_Tests +--- +<div class="boxed translate-display"> + <div class="summary"> + <p><span class="seoSummary">Esse artigo fornece um resumo detalhado de como executar a suíte gaia-ui-tests incluída no próprio Gaia, B2G Desktop e dispositivos reais com Firefox OS. O projeto Gaia usa <a href="https://travis-ci.org/">Travis CI</a> para realizar a integração contínua e testes de <em>pull requests</em>.</span></p> + </div> + <div class="note"> + <p><strong>Nota</strong>: Você pode encontrar uma <a href="https://travis-ci.org/mozilla-b2g/gaia/builds">lista de mais de 32000 compilações</a> (e crescendo) executada via Travis. Ao lado de testes unitários e testes do marionette js, Gaia também executa testes de scripts de compilação via Travis. Os detalhes da execução dos scripts são definidos em <a href="https://github.com/mozilla-b2g/gaia/tree/master/tests/travis_ci">tests/travis_ci</a>. Se você encontrar um erro no gaia_ui_tests pelo Travis e quiser reproduzí-lo localmente verifique <a href="https://github.com/mozilla-b2g/gaia/tree/master/tests/travis_ci/gaia_ui_tests">tests/travis_ci/gaia_ui_tests/</a>.</p> + </div> + <p>O testes do Gaia gaia-ui-tests foi desenvolvido com a capacidade de ser executado em dispositivos reais, emuladores e no cliente <a href="https://developer.mozilla.org/pt-BR/Firefox_OS/Using_the_B2G_desktop_client">B2G Desktop</a>. A propósito o método mais fácil de executar o teste é no B2G Desktop. Observe que você <u><strong>deve escolher o branch correto</strong></u> do Gaia para executar a versão do Firefox OS que estiver usando.</p> + <h2 id="Testando_no_B2G_Desktop">Testando no B2G Desktop</h2> + <p>O cliente B2G desktop é exatamente o que diz: uma versão desktop do B2G que você pode usar para executar testes das aplicações web do Firefox OS no conforto do seu desktop. Se você não é familiar com ele, descubra mais sobre ele no artigo <a href="https://developer.mozilla.org/pt-BR/Firefox_OS/Using_the_B2G_desktop_client">Usando o cliente B2G desktop</a>. Essa seção irá mostrar como executar os testes gaia-ui-tests no B2G desktop.</p> + <div> + <h3 id="Pré-requisitos">Pré-requisitos</h3> + <ul> + <li>Uma imsagem do B2G desktop. Você pode <a href="http://nightly.mozilla.org/">baixá-la</a> e descompactá-la em um diretório do seu computador ou uma máquina virtual ou <a href="https://developer.mozilla.org/pt-BR/Firefox_OS/Using_the_B2G_desktop_client#Building_the_desktop_client">compilar uma você mesmo</a>, adicionando <code>ENABLE_MARIONETTE=1</code> no seu.</li> + <li>Um <a href="https://github.com/mozilla-b2g/gaia/">repositório Gaia</a> clonado do Github.</li> + <li>Um <a href="https://developer.mozilla.org/pt-BR/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Testes_IU_Gaia_Executando_Testes#testvars">arquivo testvars.json</a> criado (como explicado na importante seção abaixo).</li> + </ul> + </div> + <p>O cliente desktop B2G é ideal para testes de desenvolvimento quando um dispositivo real não está disponível e não há a necessidade de testes das funções do próprio telefone. É rápido e acessível, podendo ser executado no Linux, Mac ou Windows!</p> + <h3 id="Executando_os_testes">Executando os testes</h3> + <p>Nós vamos instalar a versão que vem na própria árvore do repositório Gaia. Dessa forma nossas alterações serão usadas imediatamente. Na sua versão clonada do Gaia, navege o diretório <code>gaia/tests/python/gaia-ui-tests</code> e execute o seguinte comando de configuração:</p> + <pre class="brush: bash language-html"><code class="language-html">python setup.py develop</code></pre> + <p>Via Marionette, o gaiatest pode chamar o B2G Desktop quando iniciarmos o teste. Para fazer isso, você precisa passar o caminho do arquivo binário B2G bem como do perfil. No exemplo abaixo, nós incluímos a variável <code>$HOME</code> como o caminho tanto para o binário quanto para o perfil. Simplesmente é o local no qual você descompactou o B2G Desktop depois de ter baixado. O comando para executar todos os testes é:</p> + <pre class="brush: bash language-html"><code class="language-html">gaiatest --binary=$HOME/b2g/b2g-bin --profile=$HOME/b2g/gaia/profile --testvars=testvars.json --restart --type=b2g ./gaiatest/tests/functional/manifest.ini</code></pre> + <p>Testes que forem incompaíveis com o B2G Desktop — por exemplo, aqueles que fazem chamadas ou enviam SMS — são automaticamente ignorados pelo script de teste.</p> + <p>Você pode executar um teste diretamente chamando o arquivo na linha de comando:</p> + <pre class="brush: bash language-html"><code class="language-html">gaiatest --binary=$HOME/b2g/b2g-bin --profile=$HOME/b2g/gaia/profile --testvars=testvars.json --restart ./gaiatest/tests/functional/clock/test_clock_set_alarm.py</code></pre> + <h2 id="Testando_em_um_dispositivo_Firefox_OS">Testando em um dispositivo Firefox OS</h2> + <p>O teste em dispositivos reais Firefox OS é mais complicado, mas de longe fornece resultados mais precisos, pois acessa todos as características reais do dispositivo.</p> + <div> + <h3 id="Pré-requisitos_2">Pré-requisitos</h3> + <ul> + <li><a href="https://developer.mozilla.org/pt-BR/Firefox_OS/Debugging/Installing_ADB">Android Debug Bridge instalado</a> e o arquivo de <a href="https://developer.mozilla.org/en-US/Firefox_OS/Firefox_OS_build_prerequisites#For_Linux.3A_configure_the_udev_rule_for_your_phone">udev rules configurado.</a></li> + <li>Um dispositivo Firefox OS com uma compilação com o Marionette habilitado</li> + <li>O <em>branch</em><em> </em>d<em>o</em> <a href="https://github.com/mozilla-b2g/gaia/">repositório Gaia no Github</a> referente ao seu dispositivo Firefox OS clonado e atualizado.</li> + <li>Um arquivo <a href="https://developer.mozilla.org/pt-BR/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Testes_IU_Gaia_Executando_Testes#testvars">testvars.json file</a> criado.</li> + </ul> + </div> + <h3 id="Executando_os_testes_2">Executando os testes</h3> + <p>O pacote gaiatest é necessário para a execução dos testes. Nós precisamos instalá-lo para o <em>branch</em> o qual queremos executar o testes. Navegue no diretório <code>gaia/tests/python/gaia-ui-tests/</code> e instale o gatatest com o seguinte comando:</p> + <pre class="brush: bash language-html"><code class="language-html">python setup.py develop</code></pre> + <div class="note"> + <p><strong>Nota</strong>: Antes de começar a executar o teste, leia <a href="https://developer.mozilla.org/pt-BR/docs/Gaia_Test_Runner#Risks" title="https://developer.mozilla.org/en-US/docs/Gaia_Test_Runner#Risks">este aviso</a> a fim de certificar-se de que a execução dos testes gaia-ui-tests em um dispositivo pode apagar os dados do mesmo.</p> + </div> + <p>O Marionette que está rodando no dispositivo, aguarda comandos na porta 2828. Devido a isso, precisamos direcionar nossa porta local para a porta remota no dispositivo usando o adb. Execute o seguinte comando:</p> + <pre class="brush: bash language-html"><code class="language-html">adb forward tcp:2828 tcp:2828</code></pre> + <p>Você pode usar o seguinte comando para executar todos os testes gaia-ui-tests:</p> + <pre class="brush: bash language-html"><code class="language-html">gaiatest --address=localhost:2828 --testvars=<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>TESTVARS_FILE</span><span class="token punctuation">></span></span> --restart --type=b2g gaiatest/tests/functional/manifest.ini</code></pre> + <p>Ou use o comando a seguir se você quiser executar um teste simples (substituindo a última parte pelo teste real que você quer fazer):</p> + <pre class="brush: bash language-html"><code class="language-html">gaiatest --address=localhost:2828 --testvars=<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>TESTVARS_FILE</span><span class="token punctuation">></span></span> --restart gaiatest/tests/functional/clock/test_clock_create_new_alarm.py</code></pre> + <p>Após o teste, você verá todos os resultados e registro de rastreamento para cada arquivo.</p> + <div class="note"> + <p><strong>Nota</strong>: Você pode receber um erro ao executar esses testes — <code>ImportError: No module named bluetooth</code>. Se isso acontecer, substitutua a seguinte parte do comando <code>--type=b2g</code> por <code>--type=b2g-bluetooth</code> para excluir os testes de bluetooth. Alternativamente você pode instalar o pacote PyBluez python que possibilita executar o teste do dispositivo via bluetooth.</p> + </div> + <h2 id="Executando_os_testes_usando_Travis_para_desenvolvedores_Gecko_and_Gaia_developers">Executando os testes usando Travis para desenvolvedores Gecko and Gaia developers</h2> + <p><a href="https://travis-ci.com/">Travis</a> é uma plataforma de integração contínua utilizada para executar os testes gaia-ui-tests (e outras coisas). Nessa seção nós vamos explorar como você você se benefica se pretende executar um grande número de testes.</p> + <p>Executando os testes usando nossa configuração do Travis é bastante simples — o script de instlação baixará o Gecko e preparará um perfil Gaia para você. O script de instalação usa o mozilla-download que por sua vez usa <a href="http://nodejs.org/download/">nodejs</a> e npm para baixar a última versão do Gecko.</p> + <div> + <h3 id="Pré-requisitos_3">Pré-requisitos</h3> + <ul> + <li>O repositório <a href="https://github.com/mozilla-b2g/gaia/">Gaia no Github</a> (para preparar o perfil Gaia e instalar o gaiatest e arquivos de teste).</li> + <li>Um <a href="https://developer.mozilla.org/pt-BR/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Testes_IU_Gaia_Executando_Testes#testvars">arquvo testvars.json</a> criado (como explicado na importante seção abaixo).</li> + <li>nodejs e npm instalados (são usado para baixar o Gecko.)</li> + </ul> + </div> + <h3 id="Instalando_o_Gecko_e_compilando_o_Gaia_usando_nosso_script_do_Travis">Instalando o Gecko e compilando o Gaia usando nosso script do Travis</h3> + <div class="note"> + <p><strong>Nota</strong>: Se você já tem um diretório b2g/ no Gaia então o script de instlação do Travis ignorará essa etapa. Se você precisa da última versão do Gecko, apague o diretório b2g/ antes de executar o script.</p> + </div> + <p>O script Travis deve ser executado a partir do diretório raiz do <code>gaia/</code>. Execute o seguinte comando:</p> + <pre class="brush: bash language-html"><code class="language-html">tests/travis_ci/gaia_ui_tests/install</code></pre> + <p>O script criará um ambiente virutal do Python (<em>package sandbox</em>) bem como os pacotes necessários para executar o gaia-ui-tests, incluindo uma nova versão do B2G desktip e uma <a href="https://developer.mozilla.org/pt-BR/Firefox_OS/Platform/Gaia/Hacking#Debug_desktop_make">compilação desktop do Gaia</a>. O ambiente virtual será instalado no diretóri <code>travis_venv</code>.</p> + <h3 id="Executando_os_testes_3">Executando os testes</h3> + <p>A execução dos testes fica a cargo do arquivo <code>script</code>, que envolve a linha de comando padão:</p> + <pre class="brush: bash language-html"><code class="language-html">tests/travis_ci/gaia_ui_tests/script</code></pre> + <p>Esse comando executa:</p> + <pre class="brush: bash language-html"><code class="language-html">$ export GAIATEST_ACKNOWLEDGED_RISKS=true +$ export GAIATEST_SKIP_WARNING=true +$ root=tests/python/gaia-ui-tests/gaiatest +$ b2g=`find b2g -follow -name "b2g-bin" | tail -n 1` +$ python $root/cli.py --app=b2gdesktop \ +--binary=$b2g \ +--profile=profile \ +--type=b2g \ +--timeout=10000 \ +tests/python/gaia-ui-tests/gaiatest/tests/accessibility/lockscreen/test_a11y_un\ +lock_to_homescreen.py</code></pre> + <p>O arquivo <code>script</code> pode ser editado para direcionar para arquivos ou diretórios de testes específicos e adicionar parâmetros de linha de comando — especifcamente a linha que executa cli.py.</p> + <div class="warning"> + <p><strong>Importante</strong>: Quando usar o B2G Desktop ou um Emulator, tente manter o cursor do mouse longe da janela do B2G para que eventos de ponteiro não atrapalhem a execução dos testes.</p> + </div> + <div class="note"> + <p><strong>Nota</strong>: Você pode executar o comando <code>deactivate</code> para voltar para o console normal quando o teste finalizar.</p> + </div> + <h2 id="Encontrando_o_relatório_HTML_em_um_trabalho_finalizado_do_Travis">Encontrando o relatório HTML em um trabalho finalizado do Travis</h2> + <p>A final dos testes do Travis é produzido um relatório HTML e feito um upload para um espaço público da web.</p> + <ol> + <li>Abra o trabalho gaia-ui-tests job para um <em>pull request</em> ou <em>commit</em></li> + <li>Role a tela para baixo até a seção "after_script" e expanda o texto</li> + <li>Próximo do final do "after_script", a saída do console mostra a localização do relatório na Amazon AWS</li> + </ol> + <p>Quando os testes são executados localmente você pode encontrar o relatório em <code>gaia/artifacts/gaia_ui_tests_report.html</code></p> + <div class="note"> + <p><strong>Nota</strong>: Até o momento isso só funciona para commits de merge, mas esperamos usar isso em pull requests no futuro.</p> + </div> + <h2 id="Testando_localmente_com_configuração_TBPL_para_desenvolvedores_Gecko_e_Gaia"><a name="RunningTBPL"></a>Testando localmente com configuração TBPL para desenvolvedores Gecko e Gaia</h2> + <p>Nesta seção, vamos nos concentrar em replicar um teste TBPL localmente. Antes disso você precisa estar ciente de que é construído um perfil Gaia separado. O perfil que vem empacotado com a compilação TBPL não é o mesmo perfil que o TBPL utiliza.</p> + <div> + <h3 id="Pré-requisitos_4">Pré-requisitos</h3> + <ul> + <li>Uma compilação B2G desktop. Você pode <a href="http://nightly.mozilla.org/">baixá-la</a> and descompactá-la em um diretório do seu computador ou em uma máquina virtual ou <a href="https://developer.mozilla.org/pt-BR/Firefox_OS/Using_the_B2G_desktop_client#Building_the_desktop_client">compilar uma você mesmo</a>, incluindo <code>ENABLE_MARIONETTE=1</code> no seu mozconfig.</li> + <li>O <a href="https://github.com/mozilla-b2g/gaia/">reposiório Gaia do Github</a> (para prepara o perfil Gaia e instalar o gaiatest e os arquivos de testes).</li> + <li>Um <a href="https://developer.mozilla.org/pt-BR/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Testes_IU_Gaia_Executando_Testes#testvars">arquivo testvars.json</a> criado.</li> + </ul> + </div> + <h3 id="Compilando_um_perfil_Gaia_com_as_configurações_TBPL's">Compilando um perfil Gaia com as configurações TBPL's</h3> + <p>Antes de compilar um perfil nós necessitamos verificar as variáveis de ambiente usadas para compilar o perfil. Procurando no "brief log" do teste Gu, encontre esse bloco de comando:</p> + <pre class="brush: bash language-html"><code class="language-html">Using env: {'DEBUG': '0', + 'DESKTOP': '0', + 'DESKTOP_SHIMS': '1', + 'NOFTU': '0'}</code></pre> + <p>Essas configurações podem alterar drasticamente o comportamento do B2G. É muito importante fazer coincidir as configurações do TBPL.</p> + <p>O próximo passo é fazer o <em>checkout</em> do <em>commit</em> do git que coincide com o commit do hg que roda no TBPL. Você também pode encontrar o commit do hg no "brief log" do TBPL, mas você próprio vai precisar correlacionar com <em>commit</em> do git.</p> + <p>O reposiório de teste do gaia inclui um script <code>make</code> para compilar um perfil Gaia. Navegue no reposiório do Gaia que você clonou localmente e compile o perfil usando as variáveis de ambiente que nós encontramos no TBPL:</p> + <pre class="brush: bash language-html"><code class="language-html">DEBUG=0 DESKTOP=0 DESKTOP_SHIMS=1 NOFTU=0 make</code></pre> + <h3 id="Executando_os_testes_4">Executando os testes</h3> + <p>Use o mesmo commit do git que o TBPL usou para executar o teste, vá para o diretório <code>gaia/tests/python/gaia-ui-tests</code> e instale o gaiatest usando o seguinte comando:</p> + <pre class="brush: bash language-html"><code class="language-html">python setup.py develop</code></pre> + <p>Agora que você tem o perfil Gaia, a única diferença significante para executar esses testes é que você deve direcionar o gaiatest para os locais do binário do B2G e do profile. Como o TBPL é executado em um ambiente isolado, ele usa o próprio conjunto de testes, configurado em <code>tbpl-manifest.ini</code>.</p> + <p>Dentro do diretório <code>gaia-ui-tests</code> directory, execute o comando a seguir, com as seguintes substituições:</p> + <ul> + <li><code>$BINARY_PATH</code>: O caminho para o arquivo <code>b2g-bin</code> no diretório que você compilou ou descompactou o B2G.</li> + <li><code>$PROFILE_PATH</code>: O caminho para o seu perfil Gaia compilado localmente. Se compilado a partir do repositório Gaia será <code>~/gaia/profile</code>.</li> + </ul> + <pre class="brush: bash language-html"><code class="language-html">gaiatest --binary $BINARY_PATH/b2g/b2g-bin --profile $PROFILE_PATH/profile --restart --testvars testvars.json gaiatest/tests/tbpl-manifest.ini --type=b2g</code></pre> + <div class="note"> + <p><strong>Nota</strong>: Não há necessidade de direcionar a porta 2828 a menos que você tenha configurado o servidor do Marionette para usar uma porta padrão diferente.</p> + </div> + <div class="warning"> + <p><strong>Important</strong>e: Tente manter o cursor do seu mouse longe da janela do b2g uma vez que pode atrapalhar na execução dos testes.</p> + </div> + <h3 id="Encontrando_um_relatório_HTML_do_trabllho_realizado_pelo_TBPL">Encontrando um relatório HTML do trabllho realizado pelo TBPL</h3> + <p>Todos os trabalhos TBPL (os que passaram e os que falharam) possuí um relatório gerado e armazenado.</p> + <ol> + <li>Para o commit, clique <em>Gu</em>.</li> + <li>Na barra de status, abaixo do TBPL procure a seção entitulada <em>TinderboxPrint: Uploaded output.html</em>.</li> + <li>Copie o link para um navegador e veja o relatório.</li> + </ol> + <h2 id="Teste_em_um_binário_que_já_esteja_sendo_executado">Teste em um binário que já esteja sendo executado</h2> + <p>Nessa seção nós vamos verificar como realizar testes em um Desktop B2G em execução com código fonte modificado.</p> + <div> + <h3 id="Pré-requisitos_5">Pré-requisitos</h3> + <ul> + <li>Uma compilação B2G desktop com suas alterações no Gecko. Você pode <a href="http://nightly.mozilla.org/">baixá-la</a> and descompactá-la em um diretório do seu computador ou em uma máquina virtual ou <a href="https://developer.mozilla.org/pt-BR/Firefox_OS/Using_the_B2G_desktop_client#Building_the_desktop_client">compilar uma você mesmo</a>, incluindo <code>ENABLE_MARIONETTE=1</code> no seu mozconfig.</li> + <li>Um depurador a sua escolha conectado ao binário B2G</li> + <li>O <a href="https://github.com/mozilla-b2g/gaia/">reposiório Gaia do Github</a> (para prepara o perfil Gaia e instalar o gaiatest e os arquivos de testes).</li> + <li>Um <a href="https://developer.mozilla.org/pt-BR/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Testes_IU_Gaia_Executando_Testes#testvars">arquivo testvars.json</a> criado.</li> + </ul> + </div> + <h3 id="Running_the_tests">Running the tests</h3> + <p>Running tests against an existing b2g process is quite easy — you've already gone through the hard parts to build B2G!</p> + <p>If you have not already installed gaiatest then do so now by going to <code>gaia/tests/python/gaia-ui-tests</code> and running the following:</p> + <pre class="brush: bash language-html"><code class="language-html">python setup.py develop</code></pre> + <p>Once you have started the b2g binary process and attached your debugger you need to direct gaiatest to the port using the <code>--address</code> command. Do not use <code>--binary</code> or <code>--profile</code>, otherwise gaiatest will just send commands directly to the port without attempting to start or close the binary.</p> + <pre class="brush: bash language-html"><code class="language-html">gaiatest --testvars testvars.json gaiatest/tests/functional/test_that_is_being_debugged.py</code></pre> + <div class="note"> + <p><strong>Note</strong>: We have omitted the <code>--restart</code> command too. As gaiatest does not attempt to stop or start the binary some data from your test run may be left behind in Firefox OS databases or even in the DOM. It is your responsibility to reset B2G back to a basic state before trying to run the test for a second time.</p> + </div> + <h2 id="Variáveis_de_teste_(testvars.json)"><a name="testvars">Variáveis de teste (testvars.json)</a></h2> + <p>O gaia-ui-tests vai limpar os banco de dados do seu aparelho para fornecer um perfil limpo para as rotinas de teste. Gaiatest tem uma proteção contra a execução e apagamento dos dados do seu dispositivo. Leia <a href="https://developer.mozilla.org/pt-br/docs/Gaia_Test_Runner#Risks" title="https://developer.mozilla.org/en-US/docs/Gaia_Test_Runner#Risks">esse aviso</a> antes de configurar seu arquivo de variáveis de teste.</p> + <p>Podemos usar a opção <code>--testvars</code> para passar variáveis locais, particularmente aquelas que não podem ser verificadas no repositório. Por exemplo, no gaia-ui-tests existem variáveis que podem ser suas credenciais privadas, número de telefone ou detalhes da sua conexção WiFi.</p> + <p>Para usar isso, copie <code>testvars_template.json</code> para um outro arquivo e não esqueça de adicioná-lo ao arquivo <code>.gitignore</code> para que não seja enviado ao seu repositório remoto.</p> + <p>E quando for executar seus testes adicione o argumento: <code>--testvars=(filename).json</code></p> + <h3 id="Como_configurar_o_WiFi_usando_o_arquivo_testvars.json_(para_dispositivos)"><strong>Como configurar o WiFi usando o arquivo </strong>testvars.json (para dispositivos)</h3> + <p>Para que as rotinas de teste consigam utilizar a sua conexão WiFi é necessário registar no arquivo <code>testvars.json</code>.</p> + <p>Sem autenticação WiFi:</p> + <pre class="language-html"><code class="brush: bash language-html">"wifi": { "ssid": "MyNetwork"} </code></pre> + <p>autenticação WEP:</p> + <pre class="language-html"><code class="language-html">"wifi": { "ssid": "MyNetwork", "keyManagement": "WEP", "wep": "MyPassword" } </code></pre> + <p>autenticação WPA-PSK:</p> + <pre class="language-html"><code class="language-html">"wifi": { "ssid": "MyNetwork", "keyManagement": "WPA-PSK", "psk": "MyPassword" } </code></pre> + <div class="note"> + <p>Devido ao <a href="http://bugzil.la/775499">Bug 775499</a>, conexões WiFi via WPA-EAP não são possíveis nesse momento.</p> + </div> + <p> </p> + <h2 id="Resolução_de_problemas">Resolução de problemas</h2> + <p>Essa seção detalha algumas mensagens comuns de erro e algumas dicas de como resolver os problemas.</p> + <h3 id="Problemas_comuns_antes_do_início_do_teste">Problemas comuns antes do início do teste</h3> + <table class="standard-table"> + <thead> + <tr> + <th scope="col" style="text-align: center;"><strong>Mensagem de erro </strong></th> + <th scope="col" style="text-align: center;"><strong>Ações correspondentes</strong></th> + </tr> + </thead> + <tbody> + <tr> + <td>error: [Errno 111] Connection refused</td> + <td> + <p>Execute novamente o comando "adb forward tcp:2828 tcp:2828"<br> + <br> + O processo B2G não está rodando</p> + </td> + </tr> + <tr> + <td>Element ... not visible before timeout</td> + <td> + <p>Certifique-se de que o elemento deveria ser exibido no aplicativo que você está testando.</p> + </td> + </tr> + <tr> + <td>TimeoutException: Condition timed out</td> + <td>Certifique-se de que a condição no aplicativo é a mesma que você espera.</td> + </tr> + <tr> + <td>marionette.errors.MarionetteException: localhost:2828 is unavailable.</td> + <td>Algo está bloqueando a porta, normalmente o comando `adb forward`. `adb kill-server` pode resolver. Ou o aplicativo pode ter sido fechado mantendo a porta aberta.</td> + </tr> + <tr> + <td>ImportError: No module named bluetooth</td> + <td> + <p>Substitua no comando <code>--type=b2g</code> por <code>--type=b2g-bluetooth</code><br> + OU<br> + Instale o pacote pybluez Python bluetooth<br> + </p> + </td> + </tr> + <tr> + <td>OSError: [Errno 2] No such file or directory: '~/moz/gaia/profile'</td> + <td>Não utilize ~ na linha de comando significando $HOME. Escreva o caminho completo</td> + </tr> + </tbody> + </table> + <p> </p> +</div> +<p> </p> diff --git a/files/pt-br/archive/b2g_os/automated_testing/gaia_unit_tests/index.html b/files/pt-br/archive/b2g_os/automated_testing/gaia_unit_tests/index.html new file mode 100644 index 0000000000..215462fcb1 --- /dev/null +++ b/files/pt-br/archive/b2g_os/automated_testing/gaia_unit_tests/index.html @@ -0,0 +1,206 @@ +--- +title: Testes de unidade Gaia +slug: Archive/B2G_OS/Automated_testing/Gaia_unit_tests +tags: + - Automação + - B2G + - Firefox OS + - Gaia + - Mobile + - NeedsContent + - Testes + - construindo documentação + - testes de unidade +translation_of: Archive/B2G_OS/Automated_testing/Gaia_unit_tests +--- +<div class="summary"> +<p>Como parte do código-fonte Gaia / B2G, fizemos vários testes de unidade disponíveis para execução, para testar diferentes aspectos de Gaia e B2G. Este artigo explica como acessá-los.</p> +</div> + +<div class="note"> +<p>Nota: Este documento assume que você entenda completamente como trabalhar com Gaia e B2G. Consulte <a href="/pt-BR/Firefox_OS/Developing_Gaia">Desenvolvendo Gaia</a> para se familiarizar.</p> +</div> + +<h2 id="Rodando_testes_de_unidade">Rodando testes de unidade</h2> + +<p>Você pode rodar testes de unidade no <a href="/pt-BR/Firefox_OS/Using_the_B2G_desktop_client">B2G desktop</a>, <a href="http://nightly.mozilla.org/">Firefox Nightly</a> ou <a href="/pt-BR/Firefox_OS/Developing_Gaia/Different_ways_to_run_Gaia#Using_Gaia_in_Firefox_Mulet">Mulet</a>. Você também precisará da última versão <a href="https://github.com/mozilla-b2g/gaia/">Gaia repo</a>. Para a maioria das funcionalidades, você também precisa ter o <a class="external" href="http://nodejs.org/" title="http://nodejs.org/">Node.js</a> e o <a class="external" href="http://npmjs.org/" title="http://npmjs.org/">NPM</a> instalados.</p> + +<div class="warning"> +<p>Aviso: Nós provavelmente vamos descontinuar a execução de testes no Firefox em breve. Utilize <a href="/pt-BR/Firefox_OS/Developing_Gaia/Different_ways_to_run_Gaia#Using_Gaia_in_Firefox_Mulet">Mulet</a> a partir de agora.</p> +</div> + +<div class="note"> +<p>Nota: Se os seguintes comandos falharem com erros criptográficos ao instalar dependências do tipo test-agente, pode ser que a suas versões Node.js / NPM sejam muito antigas. Leia <a href="https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager">Instalando Node.js via gerenciador de pactoes</a> Node.js via gerenciador de pacotes para instalar as versões mais recentes e exclua a pasta <code>node_modules/test-agent</code>.)</p> +</div> + +<div class="note"> +<p>Nota: No Ubuntu (e possivelmente alguns outros Linux distros também), Node.js é chamado nodejs e node é chamado de programa Amateur Packet Radio "Node". Se você está recebendo um problema com a execução de testes unitários nesses sistemas (mensagens de erro podem significar que "Esta falha pode ser devido ao uso de legado binário 'node'"), então você deve instalar o pacote node nodejs-legacy. Isso impede que um conflito com o Programa Amateur Packet Radio "Node", removendo <code>/usr/sbin/node</code> e transformando-o em um link simbólico para <code>/usr/bin/nodejs</code>, que deve tornar as coisas funcionarem conforme o esperado.</p> +</div> + +<p>A repo Gaia contém um script bin / gaia-teste bastante acessível, que ajuda executar os testes de uma maneira mais fácil.</p> + +<div class="warning"> +<p>Aviso: este script irá gerar um perfil adequado para testes de unidade no perfil-debug. Se você já tem outro perfil neste diretório ele será substituído. O <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=980496"> Bug 980496</a> visa torná-lo configurável.</p> +</div> + +<h3 id="Lançando_o_executor_de_testes_de_Mulet_ou_Firefox">Lançando o executor de testes de Mulet ou Firefox</h3> + +<p>Isto irá rodar o servidor de teste e lançar o seu Firefox padrão como encontrado no caminho:</p> + +<pre class="brush: bash">bin/gaia-test</pre> + +<h4 id="Escolhendo_Firefox_binário">Escolhendo Firefox binário</h4> + +<p>Você pode exportar a variável de ambiente do Firefox para o seu binário firefox. Por exemplo, no OS X:</p> + +<pre class="brush: bash">export FIREFOX=/Applications/FirefoxNightly.app/Contents/MacOS/firefox</pre> + +<p>Alternativamente, você pode passá-la como argumento para bin/gaia-teste:</p> + +<pre class="brush: bash">bin/gaia-test <gaia directory> <firefox path></pre> + +<h3 id="Lançando_o_executor_de_testes_no_B2G_desktop">Lançando o executor de testes no B2G desktop</h3> + +<p>Isto irá baixar e lançar o B2G área de trabalho:</p> + +<pre class="brush: bash">bin/gaia-test -d</pre> + +<h3 id="Execute_os_testes_a_partir_da_interface_Web">Execute os testes a partir da interface Web</h3> + +<p>Você pode simplesmente clicar em testes específicos e, em seguida, no botão Executar.</p> + +<h3 id="Execute_os_testes_a_partir_da_linha_de_comando">Execute os testes a partir da linha de comando</h3> + +<p>Com o servidor WebSocket running, e o app Test Agent em execução no B2G Desktop / Firefox Nightly, execute o seguinte comando:</p> + +<pre>make test-agent-test +</pre> + +<p>Se você só deseja executar testes de um aplicativ,o você pode especificar quais via variável env APP:</p> + +<pre>make test-agent-test APP=calendar +</pre> + +<p>Você pode também fornecer, opcionalmente, um repórter para formatar a saída do teste: <a class="external" href="http://visionmedia.github.com/mocha/#reporters" title="http://visionmedia.github.com/mocha/#reporters">reporter</a> to format the test output:</p> + +<pre>make REPORTER=List test-agent-test +</pre> + +<div class="note">Nota: Nem todos os repórteres trabalham, uma vez que atualmente não suportam Doc.</div> + +<h3 id="Execute_os_testes_enquanto_você_salva">Execute os testes enquanto você salva</h3> + +<blockquote> +<p>Quando o servidor está em execução, os testes para um arquivo são executados automaticamente quando um arquivo é salvo ou mesmo quando ele é tocado:</p> +</blockquote> + +<ul> + <li>Quando você salvar um arquivo de teste, o próprio arquivo de teste é executado.</li> + <li><span style="line-height: 19.0909080505371px;">Quando você salvar um outro arquivo, ele encontra um arquivo correspondente no diretório test / unit, usando como sufixo o nome do arquivo com <code>_test.js</code>.</span></li> +</ul> + +<div class="note"> +<p>Nota: ele observa somente arquivos existentes, então se você criar um novo arquivo, você tem que reiniciar o agente.</p> +</div> + +<h3 id="A_execução_de_testes_como_Buildbot_faz">A execução de testes como Buildbot faz</h3> + +<p>Testes de unidade no Gaia Buildbot são executados usando um executor separado; isto explica como usá-lo. Por favor, consulte os documentos <a href="/pt-BR/docs/Python/Virtualenv" style="line-height: 19.0909080505371px;" title="/en-US/docs/Python/Virtualenv">virtualenv</a> se você não estiver familiarizado com o uso de um virtualenv Python.</p> + +<pre class="brush: bash">virtualenv venv +source venv/bin/activate +cd $GAIA/tests/python/gaia-unit-tests +python setup.py develop +cd gaia_unit_test +python main.py --binary /path/to/b2g/desktop/build --profile /path/to/gaia/profile +</pre> + +<div class="note"> +<p>Nota: Ao especificar o caminho para a construção de desktop B2G, você deve especificar o caminho para B2G-bin, se ele existir, caso contrário use B2G.</p> +</div> + +<p>O perfil de Gaia deve ser feito usando o seguinte:</p> + +<pre class="brush: bash">NO_LOCK_SCREEN=1 DEBUG=1 DESKTOP=0 make</pre> + +<p>Por padrão, este perfil será gerado no <code>$ GAIA/profile-debug</code>. O <code>bin/ gaia-teste</code> gera o mesmo perfil, de modo que você não precisa regenerá-lo se você já tiver executado o gaia-teste.</p> + +<h3 id="Desativando_um_teste_de_unidade_gaia_em_automação">Desativando um teste de unidade gaia em automação</h3> + +<p>Automação usa uma lista negra para excluir certos testes de unidade gaia de serem executadas. Para evitar que um teste de correr em automação, adicione seu caminho para <a href="https://github.com/mozilla-b2g/gaia/blob/master/tests/python/gaia-unit-tests/gaia_unit_test/disabled.json">https://github.com/mozilla-b2g/gaia/blob/master/tests/python/gaia-unit-tests/gaia_unit_test/disabled.json</a>.</p> + +<h2 id="Configurando_o_seu_app_Gaia">Configurando o seu app Gaia</h2> + +<p>Embora este guia possa ajudar a tornar as coisas mais fáceis, a melhor maneira de aprender a escrever, criar e executar testes ainda está em olhar para o código-fonte; em particular, nos <a class="link-https" href="https://github.com/lightsofapollo/gaia/tree/master/apps/gallery/test" title="https://github.com/lightsofapollo/gaia/tree/master/apps/gallery/test">testes de galeria</a>.</p> + +<h3 id="Carregando_seus_próprios_arquivos_de_teste" style="line-height: 24px; font-size: 1.71428571428571rem;">Carregando seus próprios arquivos de teste</h3> + +<div class="note"> +<p>Nota: Esta é uma técnica avançada e totalmente opcional. Se o carregador de testes nativo do test-agent estiver funcionando em sua aplicação, assim como o seu teste de estilo, e você não quiser usar seus próprios arquivos de teste, esta seção não é para você!</p> +</div> + +<p>O test-agent carrega seus arquivos de teste em um ambiente onde eles têm acesso a mocha (assim como outros bits de estado global). Um test-agent global importante é o require, que permite que o seu arquivo de teste carregue uma dependência (código da aplicação, por exemplo). Às vezes, principalmente se os seus arquivos de aplicativos estiverem esperando para serem carregados de uma maneira diferente da exigência do test-agent, ele pode ser útil para substituir o carregador de arquivo de teste do test-agente. Você também pode fazê-lo da seguinte maneira:</p> + +<pre class="brush: js" style="font-size: 14px;">// setup.js + +testAgentRuntime.testLoader = function(path) { + // We're going to return a promise to represent + // the loading state of the test file at this path. + return new Promise((accept, reject) => { + // Load the parameter test file and resolve (or reject) appropriately + // ... + }); +};</pre> + +<h2 id="Usando_simulações">Usando simulações</h2> + +<p>TBD</p> + +<h2 id="Avançado_o_que_é_que_o_script_faz">Avançado: o que é que o script faz?</h2> + +<h3 id="Gerando_um_perfil">Gerando um perfil</h3> + +<p>Você precisa de um perfil que é gerado por este comando:</p> + +<pre class="brush: bash">NO_LOCK_SCREEN=1 DEBUG=1 DESKTOP=0 make +</pre> + +<p>Isso gera um perfil de depuração no gaia/profile-debug, substituindo um perfil anterior, se você já tiver um.</p> + +<ul> + <li><code>DEBUG=1</code> permite a extensão <code>httpd.js</code> que torna possível usar diretamente os arquivos do diretório <code>apps/</code>.</li> + <li><code>NO_LOCK_SCREEN=1</code> desativa a tela de bloqueio, que é necessária na área de trabalho B2G , porque não é possível desbloqueá-la usando o mouse.</li> + <li><code>DESKTOP=0</code> desativa os outros addons que normalmente usamos no modo de depuração para executar o Gaia no Firefox.</li> +</ul> + +<h3 id="Inicie_o_servidor_WebSocket">Inicie o servidor WebSocket</h3> + +<p>O agente de teste (o corredor de teste) vem com um servidor WebSocket construído que permite que você envie uma mensagem remotamente ao navegador ou dispositivo para fila de teste. Muitas vezes você poderá querer desenvolver utilizando recursos de economia de tempo como um observador de arquivo que irá executar os testes quando um arquivo de teste ou implementação mudar. Para aproveitar destas características você precisa iniciar o servidor:</p> + +<pre class="brush: bash">make test-agent-server +</pre> + +<p>O servidor WebSocket fornece outras ferramentas durante o uso, como por exemplo, um repórter de linha de comando para os resultados do teste (assista ao terminal no qual você executou o comando), um repórter Growl, as notificações de erro de sintaxe, e muito mais.</p> + +<p>O agente também assiste alterações nos arquivos, automaticamente executa os testes associados. Ele é executado quando você salva o teste ou se você salva o arquivo testado (nós usamos a convenção na qual o nome do arquivo de teste é o nome do arquivo testado com <code>_test </code>anexado, veja abaixo para mais exemplos). Ela vê apenas os arquivos existentes, então se você criar um novo arquivo, você terá que reiniciar o agente.</p> + +<h3 id="Executando_testes_unitários_com_o_Firefox_Nightly">Executando testes unitários com o Firefox Nightly</h3> + +<p>Você pode lançar Gaia no Firefox Nightly com os seguintes comandos:</p> + +<pre class="brush: bash">cd <path to gaia> +<path to nightly>/firefox --no-remote -profile <path to gaia>/profile-debug/ http://test-agent.gaiamobile.org:8080/</pre> + +<div class="note"> +<p>Nota: No OS X, o caminho do perfil deve ser um caminho absoluto</p> +</div> + +<p>Você pode usar o Firebug ou o depurador integrado para depurar os testes; use a palavra-chave depurador para quebrar no depurador.</p> + +<h3 id="Executando_testes_unitários_com_B2G_desktop">Executando testes unitários com B2G desktop</h3> + +<p>Inicie o Gaia e o app "Test Agent". A partir do app gent Teste você pode selecionar os testes para executar a partir da interface do usuário.</p> + +<h2 id="Avançado_como_é_que_o_agente_de_teste_funciona">Avançado: como é que o agente de teste funciona?</h2> + +<p><span style="line-height: 19.0909080505371px;">O agente de teste vive em </span><a href="https://github.com/mozilla-b2g/js-test-agent">seu próprio repositório Github</a>. <span style="line-height: 19.0909080505371px;"> Você pode dar uma olhada lá para entender como ele funciona sob o capô.</span></p> diff --git a/files/pt-br/archive/b2g_os/automated_testing/index.html b/files/pt-br/archive/b2g_os/automated_testing/index.html new file mode 100644 index 0000000000..a786d1299b --- /dev/null +++ b/files/pt-br/archive/b2g_os/automated_testing/index.html @@ -0,0 +1,108 @@ +--- +title: Testes automatizados do Firefox OS +slug: Archive/B2G_OS/Automated_testing +tags: + - Automated testing + - B2G + - NeedsTranslation + - QA + - Testing + - TopicStub +translation_of: Archive/B2G_OS/Automated_testing +--- +<div class="summary"> +<p>Uma vez que o Fireofox OS está em desenvolvimento e o suporte para novos hardwares está próximo, é importante saber como testá-lo. Essa página mostra artigos que fornecem informações sobre os vários aspectos de como testar o Firefox OS, incluindo a execução de diferentes testes, automação, relatórios de resultados e rastreamento.</p> +</div> + +<h2 id="Iniciando">Iniciando</h2> + +<dl> + <dt><a href="/pt-BR/Firefox_OS/Running_Tests_on_Firefox_OS_for_Developers">Executando testes no Firefox OS: um guia para desenvolvedores</a></dt> + <dd>Um guia rápido, focado no desenvolvedor que deseja iniciar os testes. Se você não tem experiência em executar testes em produtos da Mozilla nem em suas automações, é aqui onde você deve começar. Se você tem alguma ideia que quais testes você precisa executar e como, você pode ir direto aos guias mais específicos abaixo.</dd> +</dl> + +<h2 id="Testes_do_Gaia">Testes do Gaia</h2> + +<p>Esses artigos cobrem o conjunto de testes primários desenvolvido para colocar o Gaia no seu ritmo.</p> + +<dl> + <dt><a href="/pt-BR/docs/Mozilla/Firefox_OS/Platform/Automated_testing/gaia-ui-tests" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Testing/gaia-ui-tests">Testes da Inteface do usuário (IU) Gaia</a></dt> + <dd>Testes python para recursos e interações da IU Gaia.</dd> + <dt><a href="/pt-BR/docs/Mozilla/Firefox_OS/Platform/Automated_testing/Gaia_integration_tests">Testes de integração do Gaia</a></dt> + <dd>Testes de integração JavaScript para o Gaia, baseado no Marionette.</dd> + <dt><a href="/pt-BR/docs/Mozilla/Firefox_OS/Platform/Automated_testing/Gaia_unit_tests" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Testing/Gaia_unit_tests">Testes unitários do Gaia</a></dt> + <dd>Testes unitários do Gaia sem interação com a IU, escrito em JavaScript, não baseado no Marionette.</dd> + <dt><a href="/pt-BR/Firefox_OS/Platform/Automated_testing/Gaia_performance_tests">Testes de performance do Gaia</a></dt> + <dd>Mede a performance do Gaia baseado em instrumentação interna. Measures Gaia app performance based on internal instrumentation. Os equipamentos do teste estão na árvore.</dd> +</dl> + +<h2 id="Testes_B2G">Testes B2G</h2> + +<p>Os guias abaixo cobre um número de diferentes ferramentas de testes em vários aspectos da funcionalidade do B2G.</p> + +<dl> + <dt><a href="/pt-BR/docs/Mozilla/Firefox_OS/Platform/Automated_testing/Mochitests" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Testing/Mochitests">Mochitests</a></dt> + <dd>Testes funcionais do Gecko e APIs; baseados em HTML e JS based. Sem interação com o Gaia.</dd> + <dt><a href="/pt-BR/docs/Mozilla/Firefox_OS/Platform/Automated_testing/Reftests" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Testing/Reftests">Reftests</a></dt> + <dd>Testes de correção da renderização do Gecko.</dd> + <dt><a href="/pt-BR/docs/Marionette/Marionette_JavaScript_Tests" title="/en-US/docs/Marionette/Marionette_JavaScript_Tests">Testes de WebAPI</a></dt> + <dd>Baseado no Gecko e JS. Muitos desses testes necessitam de um emulador.</dd> + <dt><a href="/pt-BR/docs/Mozilla/Firefox_OS/Platform/Automated_testing/XPCShell" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Testing/XPCShell">Testes xpcshell</a></dt> + <dd>Testes <em>headless</em> do Gecko XPCOM APIs.</dd> + <dt><a href="https://github.com/mozilla/b2gperf" title="https://github.com/mozilla/b2gperf">B2GPerf</a></dt> + <dd>Aplicativos de medição de performance do Gaia baseados em instrumentações internas.</dd> + <dt><a href="https://wiki.mozilla.org/Project_Eideticker" title="https://github.com/mozilla/eideticker">Eideticker</a></dt> + <dd>Provê medições de performance para o Firefox OS baseado em captura de vídeos.</dd> + <dt><a href="/pt-BR/docs/Mozilla/Firefox_OS/Platform/Automated_testing/endurance_tests" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Automated_testing/endurance_tests">Teste de resistência</a></dt> + <dd>Testes de longa duração e repetitivos para descobrir problemas como vazamento de memória e problemas de estabilidade.</dd> + <dt><a href="https://developer.mozilla.org/pt-BR/docs/Mozilla/Firefox_OS/Platform/Automated_testing/MTBF_tests">Teste MTBF</a></dt> + <dd>Esse é um framework de teste baseado na não-reinicialização da IU gaia. Tenta localizar todos os tipos de problema evitando a execução de testes de longa duração. Atualmente, pertence a um time de QA em Taiwan que ainda estão testando esse framework.</dd> + <dt>Testes de Memória - Em breve</dt> + <dd>Testes repetitivos são executados a cada commit ao repo mozilla-central, reportados ao <a href="https://areweslimyet.com/" title="https://areweslimyet.com/">https://areweslimyet.com/</a>, projetado para descobrir problemas relacionados ao uso da memória.</dd> +</dl> + +<h2 id="Documentação_de_Suporte">Documentação de Suporte</h2> + +<p>Essa seção fornece links para algumas das tecnologias que suportam os testes da Mozilla, nos quais você pode encontrar maiores informações.</p> + +<dl> + <dt><a href="/pt-BR/docs/Mozilla/QA/Marionette" title="/en-US/docs/Marionette">Marionette</a></dt> + <dd>E driver de teste remoto baseado no Selenium WebDriver.</dd> + <dt><a href="/pt-BR/docs/Mozilla/QA/Marionette/Marionette_JavaScript_Tools" title="/en-US/docs/Marionette/Marionette_JavaScript_Tools">Testes Marionette JavaScrip</a></dt> + <dd>Um executor de testes para Marionette baseado em baseado em node.js-based.</dd> + <dt><a href="/pt-BR/docs/Mozilla/QA/Marionette/Python_Marionette" title="/en-US/docs/Marionette/Python_Marionette">Testes Marionette Python</a></dt> + <dd>Um executor de testes para Marionette baseado em Python.</dd> +</dl> + +<div class="note"> +<p><strong>Nota</strong>: Se você deseja executar o Marionette em uma compilação de produção (executar testes de integração gaia, etc.), você pode <a href="https://github.com/mozilla-b2g/marionette-extension">instalar o Marionette como uma extensão</a> (atualmente só funciona na versão 1.3 builds, porém mais suporte será incluído em breve).</p> +</div> + +<h2 id="sect1"> </h2> + +<dl> + <dt> </dt> +</dl> + +<h2 id="Integração_contínua_e_relatórios_de_resultado">Integração contínua e relatórios de resultado</h2> + +<p>Os artigos a seguir cobre os mecanismos de integração contínua e relatórios de resultados que a Mozilla utliza para armazenar e interpretar os dados oriundos dos testes.</p> + +<dl> + <dt><a href="/pt-BR/docs/Mozilla/Firefox_OS/TBPL">TBPL</a></dt> + <dd>Entenda os testes e compilações que rodam no TBPL.</dd> + <dt><a href="https://wiki.mozilla.org/QA/Execution/Web_Testing/Automation/Jenkins">Jenkins</a></dt> + <dd>Entenda os testes que rodam em dispositivos reais via Jenkins.</dd> + <dt><a href="https://wiki.mozilla.org/B2G/Datazilla" title="https://wiki.mozilla.org/B2G/Datazilla">Datazilla</a></dt> + <dd>Entenda quais testes de performance são reportados no <a href="https://datazilla.mozilla.org/b2g/" title="https://datazilla.mozilla.org/b2g/">dashboard Datazilla</a>, e quais são as medições de testes.</dd> + <dt><a href="/pt-BR/docs/Mozilla/Firefox_OS/Platform/Automated_testing/Test_Execution_Chart" title="/en-US/docs/Mozilla/Firefox_OS/Testing/Test_Execution_Chart">Gráfico de execução de teste</a></dt> + <dd>Um gráfico que mostra quais testes foram executados — em quais dispositivos e onde — e quais plataformas são suportadas para cada testes.</dd> +</dl> + +<h2 class="Community" id="Community" name="Community">Vídeo do framework de teste unitário</h2> + +<div class="intrinsic-wrapper"><div class="intrinsic-container "><iframe src="https://www.youtube.com/embed/LxnRIm0wLLo?rel=0&html5=1"></iframe></div></div> + +<dl> + <dt> </dt> +</dl> diff --git a/files/pt-br/archive/b2g_os/automated_testing/mochitests/index.html b/files/pt-br/archive/b2g_os/automated_testing/mochitests/index.html new file mode 100644 index 0000000000..a754c01747 --- /dev/null +++ b/files/pt-br/archive/b2g_os/automated_testing/mochitests/index.html @@ -0,0 +1,139 @@ +--- +title: Firefox OS mochitests +slug: Archive/B2G_OS/Automated_testing/Mochitests +translation_of: Archive/B2G_OS/Automated_testing/Mochitests +--- +<div class="summary"> + <p><span class="seoSummary"><a href="/pt-BR/docs/Mochitest">Mochitest</a> é um <a class="internal" href="/pt-BR/docs/Mozilla/QA/Automated_testing" title="En/Mozilla automated testing">framework de testes automatizados</a> construído no topo das bibliotecas JavaScript <a class="external" href="http://mochikit.com/">MochiKit</a>, que fornece testes funcionais e de API. É apenas um dos frameworks de testes de regressão automatizados usados pela Mozilla. Os testes apresentam os resultados (sucesso ou falha) usando chamadas de funções JavaScript. Esse artigo apresenta as etapas necessárias para executar o Mochitests no Firefox OS, no B2G Desktop, no dispositvo ou no emulador.</span></p> +</div> +<h2 id="Executando_mochitests_nas_imagens_do_B2G_desktop">Executando mochitests nas imagens do B2G desktop</h2> +<p>O primeiro caso que vamos cobrir é a execução do B2G no <a href="/pt-BR/docs/Mozilla/Boot_to_Gecko/Using_the_B2G_desktop_client">B2G desktop</a>. Você vai precisar <a href="https://developer.mozilla.org/pt-BR/Firefox_OS/Using_the_B2G_desktop_client#Downloading_Gaia">instalar o Gaia</a> e <a href="https://developer.mozilla.org/pt-BR/Firefox_OS/Using_the_B2G_desktop_client#Generating_a_profile">gerar um perfil</a> antes de começar.</p> +<h3 id="Usando_mach">Usando mach</h3> +<p><strong>Mach</strong> é uma interface em linha de comando que ajuda os desenvolvedores executarem tarefas comuns, vamos observar como usá-la executando o mochitests. Se você tem um B2G Desktop local, compile-o habilitando a configuração <code>ENABLE_MARIONETTE=1</code> no seu <a href="https://developer.mozilla.org/pt-BR/docs/Configuring_Build_Options">mozconfig</a>, você pode usar <a href="https://developer.mozilla.org/pt-BR/docs/Mozilla/Developer_guide/mach" title="/en-US/docs/Developer_Guide/mach">mach</a> para executar todos os mochitests. Execute o seguinte comando no diretório raiz (root) da sua árvore do fonte do seu B2G.</p> +<pre class="brush: bash language-html"><code class="language-html">./mach mochitest-b2g-desktop --profile path/to/non/debug/gaia/profile</code></pre> +<p>Alternativamente você pode configurar a variável de ambiente <code>$GAIA_PROFILE</code> para evitar ter que informar o diretório todas as vezes que executar o comando.</p> +<p>Para executar um teste específico:</p> +<pre class="brush: bash language-html"><code class="language-html">export GAIA_PROFILE=path/to/non/debug/gaia/profile +./mach mochitest-b2g-desktop test_path</code></pre> +<p>Para ver as opções do mochitest:</p> +<pre class="brush: bash language-html"><code class="language-html">./mach help mochitest-b2g-desktop</code></pre> +<div class="note"> + <p><strong>Nota</strong>: Alguns contribuidores tem trabalhado num projeto chamado <a href="https://github.com/ahal/b2g-commands">b2g-commands</a>, que pretende trazer alguns dos comandos disponíveis no Firefox desktop para a imagem B2G, como diagnósticos mais fáceis e construção do ambiente de inicialização. Mais detalhes no artigo <a href="http://ahal.ca/blog/2014/b2g-commands/">Add more Mach to your B2G</a>.</p> +</div> +<h3 id="Usando_o_mochitest">Usando o mochitest</h3> +<p>Você pode executar <a href="https://developer.mozilla.org/pt-BR/docs/Mochitest" title="https://developer.mozilla.org/en-US/docs/Mochitest">mochitest-plain</a> na imagem do B2G Desktop.</p> +<h4 id="Pre-requisitos">Pre-requisitos</h4> +<ul> + <li>Usar uma imagem com a opção <code>Marionette</code> ativa (compilada com <code>ENABLE_MARIONETTE=1</code> no mozconfig.)</li> + <li>Ter gerado um perfil gaia manualmente (que pode ter sido feito se você compilou o B2G desktop manualmente). Deve ser um perfil <em>non-DEBUG.</em></li> + <li>Não pode utilizar um perfil Gaia que tenha sido feito com um <code>GAIA_DOMAIN</code> personalizado.</li> +</ul> +<h4 id="Configuração_para_mozilla-b2g18_trees">Configuração para mozilla-b2g18 trees</h4> +<pre class="brush: bash language-html"><code class="language-html">cd $GECKO_OBJ_DIR +python $GECKO_SRC_DIR/python/virtualenv/virtualenv.py venv +source venv/bin/activate +cd $GECKO_SRC_DIR/testing/marionette/client +python setup.py develop</code></pre> +<div class="note"> + <p><strong>Nota</strong>: você pode precisar instalar <a href="http://pypi.python.org/pypi/setuptools" title="http://pypi.python.org/pypi/setuptools">setuputils.py</a> antes de executar setup.py</p> +</div> +<h4 id="Configuração_para_trunk_trees_incluindo_mozilla-central">Configuração para trunk trees, incluindo mozilla-central</h4> +<pre class="brush: bash language-html"><code class="language-html">cd $GECKO_OBJ_DIR +source _virtualenv/bin/activate</code></pre> +<h4 id="Executando_os_testes">Executando os testes</h4> +<p>Você pode executar mochitests usando os seguintes comandos:</p> +<pre class="brush: bash language-html"><code class="language-html">cd $GECKO_OBJ_DIR/_tests/testing/mochitest +python runtestsb2g.py --desktop --console-level INFO --profile /path/to/gaia/profile --app /path/to/b2g</code></pre> +<p>O executor do teste vai executar o b2g desktop e executar os testes, todos os mochitests B2G por padrão, o que consome muito tempo. Outras opções comuns são as seguintes:</p> +<ul> + <li>Para executar testes específicos, indique em <code>--test-path</code>.</li> + <li>Podem ser adicionados os argumentos <code>--total-chunks</code> e <code>--this-chunks</code> da mesma forma como é feito com o mochitest do desktop.</li> + <li>Finalmente, você pode usar <code>python runtestsb2g.py --help</code> para uma lista completa de argumentos.</li> +</ul> +<h2 id="Executando_mochitest_em_imagens_do_emulador">Executando mochitest em imagens do emulador</h2> +<p>Você pode executar <a href="https://developer.mozilla.org/pt-BR/docs/Mochitest" title="https://developer.mozilla.org/en-US/docs/Mochitest">mochitest-plain</a> em dispositivos B2G. Mas atualmente, funciona melhor quando executado em um emulador.</p> +<div class="warning"> + <p>Você não pode executar o mochitest em um dispositivo B2G que tenha sido compilado com a opção <code>PRODUCTION=1</code>. Para executar os mochitests a imagem deve ser a de engenharia. Veja <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1037858">Bug 1037858</a>.</p> +</div> +<h3 id="Usando_mach_2">Usando mach</h3> +<p>Se você possuir uma imagem local de um emulador que foi realizada a partir de um branch do Gecko (não a mozilla-b2g18), a forma mais fácil de executar um mochitest é com o <a href="https://developer.mozilla.org/pt-BR/docs/Mozilla/Developer_guide/mach" title="/en-US/docs/Developer_Guide/mach">mach</a>. Para executar todos os testes:</p> +<pre class="brush: bash language-html"><code class="language-html">cd $B2G_DIR +./mach mochitest-remote</code></pre> +<p>Para executar um teste específico:</p> +<pre class="brush: bash language-html"><code class="language-html">./mach mochitest-remote test_path</code></pre> +<div class="note"> + <p><strong>Nota</strong>: Esses caminhos são relativos ao diretório fonte do GeckoTest paths are relative to gecko's source directory, por exemplo: <code>content/base/test/test_CrossSiteXHR.html</code></p> +</div> +<p>Para ver as opções do mochitest:</p> +<pre class="brush: bash language-html"><code class="language-html">./mach help mochitest-remote</code></pre> +<h3 id="Usando_o_mochitest_2">Usando o mochitest</h3> +<p>Similar ao anterior, você pode executar o mochitest em compilações B2G no dispositivo ou emulador utilizando o executor do mochitest. Os pré-requisitos s˜ to before, you can also run mochitest on device or emulator builds of B2G using the mochitest runner. The prerequisites são um pouco mais complexos.</p> +<h4 id="Pré-requisitos">Pré-requisitos</h4> +<ul> + <li>Você precisa compilar o B2G para o dispositivo que você está testando(veja <a href="https://developer.mozilla.org/pt-BR/Firefox_OS/Construindo_e_instalando_o_Firefox_OS" title="/en-US/docs/Mozilla/Boot_to_Gecko/Building_and_installing_Boot_to_Gecko">Compilando e instalando o Boot to Gecko</a>).</li> + <li>Você não pode usar a imagem do Gaia que foi compilada com um <code>GAIA_DOMAIN</code> customizado.</li> + <li>Você precisa ter uma versão <strong>desktop</strong> do xpcshell (ele precisa rodar no <em>host</em>), você o terá se tiver uma cópia do Firefox no seu sistema. Alternativamente, você pode baixar uma cópia para o Linux a partir de <a href="http://people.mozilla.com/%7Eahalberstadt/getb2g/xre.zip" title="http://people.mozilla.com/~ahalberstadt/getb2g/xre.zip">http://people.mozilla.com/~ahalberstadt/getb2g/xre.zip</a>.</li> + <li>Você precisa instalar alguns pacotes Python que são necessários, mesmo em um virtualenv. Leia a seguir para maiores detalhes..</li> +</ul> +<h4 id="Configuração_para_mozilla-b2g18_trees_2">Configuração para mozilla-b2g18 trees</h4> +<pre class="brush: bash language-html"><code class="language-html">cd $GECKO_OBJ_DIR +python $GECKO_SRC_DIR/python/virtualenv/virtualenv.py venv +source venv/bin/activate +cd $GECKO_SRC_DIR/testing/marionette/client +python setup.py develop</code></pre> +<div class="note"> + <p><strong>Nota</strong>: antes de executar setup.py você precisa instalar <a href="http://pypi.python.org/pypi/setuptools" title="http://pypi.python.org/pypi/setuptools">setuputils.py</a></p> +</div> +<h4 id="Configuração_para_trunk_trees_incluindo_mozilla-central_2">Configuração para trunk trees, incluindo mozilla-central</h4> +<pre class="brush: bash language-html"><code class="language-html">cd $GECKO_OBJ_DIR +source _virtualenv/bin/activate</code></pre> +<h4 id="Executando_os_testes_2">Executando os testes</h4> +<p>Você pode executar o plano mochitest-plain usando um dos seguintes conjunto de comandos no terminal.</p> +<p>Para executar testes no dispositivo, o computador e o dispositivo devem estar na mesma rede sem fio, uma vez que o dispositivo requisita arquivos de um servidor HTTP que foi iniciado pelo mochitest no computador. Para iniciar os testes utilize os comandos:</p> +<pre class="brush: bash language-html"><code class="language-html">adb forward tcp:2828 tcp:2828 +cd $GECKO_OBJ_DIR/_tests/testing/mochitest +python runtestsb2g.py --b2gpath $B2G_HOME --xre-path /path/to/dir/containing/desktop/xpcshell --console-level INFO \ + --httpd-path ./</code></pre> +<p>Se você estiver usando o emulador:</p> +<pre class="brush: bash language-html"><code class="language-html">cd $GECKO_OBJ_DIR/_tests/testing/mochitest +python runtestsb2g.py --b2gpath $B2G_HOME --xre-path /path/to/dir/containing/desktop/xpcshell --console-level INFO \ + --httpd-path ./ --emulator arm</code></pre> +<div class="warning"> + <p><strong>Aviso</strong>: Executar mochitestes em um emulador B2G no OS X não é suportado, ao invés disso utilize o Linux.</p> +</div> +<p>Os comandos acima executam todos os mochitests B2G por padrão, o que consome muito tempo. Outras opções comuns são as seguintes:</p> +<ul> + <li>Para executar testes específicos: <code>--test-path</code>.</li> + <li>Opcionalmente você pode incluir os argumentos <code>--total-chunks</code> e <code>--this-chunks</code> como feito com mochitests no desktop.</li> + <li>Finalmente, você pode executar <code>python runtestsb2g.py --help</code> para uma lista completa de argumentos possíveis.</li> +</ul> +<p>Após ser iniciado o script <code>runtestsb2g.py</code>, o teste vai chamar o emulador para você (se estiver executando os testes no emulador) ou reiniciar o seu dispositivo (se estiver executando os testes no dispositivo) e comecará a executar os testes. Como o emulador é lento, é necessário copiar um perfil de testes para o emulador e reinicar o processo B2G e pode consumir alguns minutos para iniciar os testes. Antes de ser iniciado você verá apenas uma tela preta ou branca. Após alguns minutos você verá o log dos testes no console.</p> +<p>Quando os testes terminarem, o emulador será encerrado, ou se você estiver usando um dispositivo, o mesmo será reinicializado.</p> +<p>{{noteStart}}Existe um {{bug("780034")}} que evita o mochitest terminar quando você executa um teste simples, ao contrário do que ocorre no teste completo. Nesse caso, quando você perceber que o teste terminou, você pode pressionar CTRL+C para terminar o executor de testes.{{noteEnd}}</p> +<h2 id="Executando_o_mochitest_com_um_emulador_baixado_da_internet">Executando o mochitest com um emulador baixado da internet</h2> +<p>Se você compilou o B2G para outra configuração (como otoro) e gostaria de executar os testes em um emulador, você pode fazer sem a necessidade de compilar você mesmo um emulador. Apenas baixe a <a href="https://pvtbuilds.mozilla.org/pub/mozilla.org/b2g/tinderbox-builds/mozilla-central-generic/" title="https://pvtbuilds.mozilla.org/pub/mozilla.org/b2g/tinderbox-builds/mozilla-central-generic/">última versão do emulador arm</a>, e utilize as mesmas instruções acima, substituindo o argumento <code>--b2gpath $B2G_HOME</code> para <code>runtestsb2g.py</code> com <code>--b2gpath /path/to/unpacked/emulator</code>.</p> +<h2 id="Executando_o_mochitest_com_um_emulador_e_os_testes_baixados_da_internet">Executando o mochitest com um emulador e os testes baixados da internet</h2> +<p>Você também pode executar mochitests em um emuladodr sem compilar ou clonar qualquer coisa. Para fazer isso, você precisa baixar a <a href="https://pvtbuilds.mozilla.org/pub/mozilla.org/b2g/tinderbox-builds/mozilla-central-generic/" title="https://pvtbuilds.mozilla.org/pub/mozilla.org/b2g/tinderbox-builds/mozilla-central-generic/">última versão do emulador arm</a> e descompactá-la e baixar a última versão do arquivo <code>tests.zip</code> (no mesmo lugar de onde baixou o emulador) e descompactá-lo.</p> +<p>Você também precisará do <a href="https://developer.mozilla.org/pt-BR/docs/Python/Virtualenv" title="/en-US/docs/Python/Virtualenv">virtualenv </a>instalado no seu sistema.</p> +<p>Então você poderá configura seu ambiente e executar os testes:</p> +<pre class="brush: bash language-html"><code class="language-html">virtualenv venv +source venv/bin/activate +cd $TESTS_DIR/marionette +python setup.py develop +cd $TESTS_DIR/mochitests +python runtestsb2g.py --b2gpath /path/to/extracted/emulator --xre-path /path/to/desktop/xpcshell --console-level INFO \ + --httpd-path ./ --emulator arm</code></pre> +<h2 id="Detalhes_técnicos_de_implementação">Detalhes técnicos de implementação</h2> +<p>Existem algumas coisas que acontecem quando você executa os mochitests B2G.</p> +<ol> + <li>O aplicativo Homescreen é substituído por um aplicativo certificado chamado test-container (observe que isso é verificado no Gaia). Em teoria esse aplicativo é feito para ser genério, uma vez que qualquer ferramenta de testes pode usá-lo, porém até agora somente o mochitest o utiliza.</li> + <li>O aplicativo test-container expões um simples <a href="http://mxr.mozilla.org/gaia/source/test_apps/test-container/index.html?force=1" title="http://mxr.mozilla.org/gaia/source/test_apps/test-container/manifest.webapp"><iframe mozbrowser mozapp></a> no qual os mochitests são carregados (mochitests possuem seus próprios <a href="http://mxr.mozilla.org/mozilla-central/source/testing/mochitest/manifest.webapp" title="http://mxr.mozilla.org/gaia/source/test_apps/test-container/index.html?force=1">manifest.webapp</a>).</li> + <li>A automação substitui o aplicativo Homescreen pelo aplicativo test-container <a href="http://hg.mozilla.org/mozilla-central/file/947b9aa5e2d3/testing/profiles/prefs_b2g_unittest.js#l3" title="http://mxr.mozilla.org/mozilla-central/source/testing/profiles/prefs_b2g_unittest.js#3">usando uma preferência</a>.</li> + <li>A automação <a href="http://hg.mozilla.org/mozilla-central/file/1f65b5204c8b/testing/mochitest/runtestsb2g.py#l88" title="http://mxr.mozilla.org/mozilla-central/source/testing/mochitest/runtestsb2g.py#88">carrega o aplicativo mochitest</a> no iframe do aplicativo test-container (esse script é executado com privilégios chrome pelo marionette).</li> + <li>A automação <a href="http://hg.mozilla.org/mozilla-central/file/1f65b5204c8b/testing/mochitest/runtestsb2g.py#l56" title="http://hg.mozilla.org/mozilla-central/file/1f65b5204c8b/testing/mochitest/runtestsb2g.py#l56">carrega poderes especiais no frame filho</a> que está executando o mochitests e configura o gerenciador de mensagens (faz com que o mochitests acesse algumas APIs privilegiadas).</li> + <li>A automação <a href="http://hg.mozilla.org/mozilla-central/file/1f65b5204c8b/testing/mochitest/runtestsb2g.py#l92" title="http://hg.mozilla.org/mozilla-central/file/1f65b5204c8b/testing/mochitest/runtestsb2g.py#l92">carrega a url do mochitest</a> no iframe do mochitest. Isso inicia os testes.</li> +</ol> +<div class="note"> + <p><strong>Nota</strong>: Se você estiver interessado em saber como as coisas funcionam, a resposta rápida é: satisfazer os requisitos de permissão para os testes. Para uma resposta mais detalhada verifique {{bug("798580")}} e {{bug("814140")}}.</p> +</div> +<p> </p> |