aboutsummaryrefslogtreecommitdiff
path: root/files/pt-br/archive/b2g_os/automated_testing/mochitests/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/pt-br/archive/b2g_os/automated_testing/mochitests/index.html')
-rw-r--r--files/pt-br/archive/b2g_os/automated_testing/mochitests/index.html139
1 files changed, 139 insertions, 0 deletions
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">&lt;iframe mozbrowser mozapp&gt;</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>