Testando com o PHPUnit e Selenium

O NetBeans IDE para PHP oferece suporte aos testes automatizados PHPUnit. Graças ao PHPUnit, o NetBeans IDE fornece a cobertura de código para PHP, similar a cobertura de código que o IDE fornece ao Python. A saída do teste aparece na mesma janela de saída rica em recursos que os executores de teste JUnit, e Python do IDE utilizam.

O NetBeans IDE também suporta a estrutura de teste portátil Selenium em combinação com o PHPUnit. Um plug-in Selenium está disponível no Centro de atualizações. A instalação deste plug-in adiciona um servidor Selenium nos servidores registrados do IDE e adiciona opções de teste Selenium aos menus PHP.

Conteúdo

O conteúdo desta página se aplica ao NetBeans IDE 7.1

Para seguir este tutorial, você precisa dos seguintes recursos e softwares.

Software ou recurso Versão necessária
NetBeans IDE Pacote de download do PHP
Um mecanismo PHP incluindo PEAR Versão 5.
Um servidor Web É recomendado o Apache HTTP Server 2.2.
PHPUnit Versão 3.3.0 ou posterior.

Instalação do PHPUnit

Utilize o PEAR para instalar o PHPUnit como descrito na Documentação PHPUnit. Instale o PHPUnit versão 3.3.0 ou posterior. Nenhuma configuração especial é necessária. Após o PHPUnit ser instalado, o NetBeans pode reconhecê-lo. Note que é necessário possuir o PEAR instalado com seu mecanismo PHP. Note também que a documentação PHPUnit informa que o PHPUnit é usualmente instalado no diretório PEAR local. Eles fornecem um caminho de /usr/lib/php/PHPUnit, mas no XAMPP para Windows, é XAMPP_HOME\php\PEAR\PHPUnit.

Para verificar se o NetBeans IDE reconhece sua instalação PHPUnit, abra Ferramentas > Opções (no Mac, abra Preferências do NetBeans) e examine a janela PHP. Abra a guia Teste de unidade. O caminho para seu script PHPUnit deveria aparecer no campo Script PHPUnit. Se o script não está ali, procure pelo mesmo.

Página Opções mostrando o caminho para o script PHPUnit

Criação e execução de testes PHPUnit

O NetBeans IDE pode criar e executar testes PHPUnit em todas as classes PHP em um arquivo. Para ter certeza de que o gerador de teste irá funcionar, forneça o mesmo nome do arquivo PHP que a primeira classe no arquivo.

Para criar e executar testes PHPUnit para um classe

  1. Crie um projeto PHP denominado Calculador. Neste projeto, crie um arquivo denominado calculator.php. Neste arquivo, digite ou cole a classe Calculator a partir do capítulo Skeleton Generator da documentação do PHPUnit.
    <?php
    class Calculator
    {
        public function add($a, $b)
        {
            return $a + $b;
        }
    }
    ?>
  2. Adicione um bloco de comentário com o @assert annotation e alguma amostra de entrada e saída. Observe que uma afirmação incorreta está incluída neste exemplo.
    <?php
    class Calculator
    {
        /**
         * @assert (0, 0) == 0
         * @assert (0, 1) == 1
         * @assert (1, 0) == 1
         * @assert (1, 1) == 2
         * @assert (1, 2) == 4
         */
        public function add($a, $b)
        {
            return $a + $b;
        }
    }
    ?>
  3. Na janela Projetos, clique com o botão direito do mouse no nó Calulator.php e selecione Ferramentas > Criar testes PHPUnit. Observe que você pode criar testes para todos os arquivos em um projeto a partir do menu de contexto para o nó Arquivos de código-fonte.
    Menu de contexto para o nó Arquivos de código-fonte do projeto PHP, mostrando a opção Criar testes PHP
  4. Na primeira vez que você cria testes, uma caixa de diálogo é aberta perguntando pelo diretório onde deseja armazenar os arquivos de teste. Nesse exemplo, a função Procurar foi utilizada para criar um diretório testes.
    Caixa de diálogo Diretório de arquivo de teste
  5. O IDE gera uma classe de teste de esqueleto em um arquivo denominado CalculatorTest.php, que aparece em sua janela Projetos e é aberta no editor.
    Janela Projetos mostrando a nova classe de teste

    Observe que um teste é criado para cada anotação @assert.

        /**
         * Generated from @assert (1, 1) == 2.
         */
        public function testAdd4()
        {
            $this->assertEquals(
              2,
              $this->object->add(1, 1)
            );
        }
  6. É possível testar um arquivo individual ou todo o projeto. Para testar o projeto, clique com o botão direito do mouse no nó pai do projeto e selecione Testar ou pressione Alt-F6. Para testar o arquivo Calculator.php, clique com o botão direito do mouse no nó do arquivo e selecione Testar ou pressione Ctrl-F6/⌘-F6. Esse exemplo tem somente uma classe em um arquivo, portanto, os resultados são os mesmos. O IDE executa os testes e exibe os resultados na janela Resultados do teste.
    Janela Resultados do teste

    Uma versão textual mais verbosa dos resultados é exibida na janela Saída.

    Janela Saída mostrando os resultados do teste

Uso de grupos de teste

A partir do NetBeans IDE versão 7.1, você pode usar grupos de teste PHPUnit. Selecione que grupos de teste quer executar quando for executar o conjunto de teste. Por exemplo: é possível ter somente alguns testes a serem executados num ambiente de produção e outros testes a serem executados tanto nos ambientes de produção quanto de desenvolvimento. Os testes antigos seriam colocados num grupo de production e os testes posteriores tanto nos grupos produção quanto desenvolvimento. Quando o conjunto de testes é executado no ambiente de desenvolvimento, seleciona-se somente o grupo de teste de desenvolvimento a ser executado.

É preciso ativar os grupos de teste para um projeto PHP antes de usar os grupos de teste em qualquer arquivo do projeto.

Para marcar um teste como parte de um grupo de teste, anote o método de teste com @group [nome do grupo].

Para criar e executar grupos de teste:

  1. Na janela Projetos, clique com o botão direito no nó Calculadora e selecione Propriedades. Serão exibidas as Propriedades do projeto.
  2. Nas Propriedades do projeto, selecione a categoria PhpUnit. Selecione Solicitar grupos de teste antes de executar os testes. Clique em OK.
    Propriedades do projeto, Categoria PhpUnit, mostrando os grupos de testes ativados
  3. Abra CalculatorTest.php no editor.
  4. Para os métodos testAdd, testAdd3 e testAdd5, acrescente a anotação @group production.
    Código mostrando a anotação de grupo de teste
  5. Para os métodos testAdd2 e testAdd4, acrescente as anotações @group production e @group development. Código mostrando as anotações do grupo de teste
  6. Clique com o botão direito no nó Calculator.php e selecione Teste. Abre-se uma caixa de diálogo, perguntando quais grupos de teste serão executados. Selecione “development” e clique em OK. O IDE só executa os testes anotados com @group development.
    Caixa de diálogo Selecionar grupo de teste

Para obter mais informações sobre os grupos de teste PhpUnit no IDE NetBeans, consulte a publicação no blog do IDE NetBeans para PHPUso de grupos de teste da unidade PHP.

Resultados de teste e saída IDE

Os resultados dos testes PHPUnit são exibidos em duas das janelas do IDE, Resultados do teste e Saída. A janela Resultados do teste possui um painel gráfico e um painel de texto curto. A janela Saída fornece um versão textual mais verbosa da saída. Nesta seção você explora as janelas Resultados do teste e Saída em mais detalhes.

Na janela Resultados do teste, você obtém informações sobre os testes que falharam a partir destas localizações:

  • As mensagens no painel IU anexado à entrada da árvore para os testes que falharam
  • Texto no painel direito, incluindo links para as linhas do código de teste que falhou
  • Texto da dica de ferramenta que aparece quando você passa o cursor sobre o teste que falhou no painel IU
Janela Resultados do teste mostrando a dica da ferramenta

A janela Resultados do teste inclui os seguintes botões no lado esquerdo:

  • Executar novamente o teste botão de nova execução
  • Mostrar os testes com falha botão Mostrar testes com falha
  • Mostrar testes aprovadosbotão Mostrar testes aprovados
  • Mostrar testes aprovados com errosbotão Mostrar testes aprovados com erros
  • Navegar entre as exibições de próximo resultado de testebotão próximo teste ou resultado de teste anterior botão teste anterior

A janela Saída mostra a saída completa do script PHPUnit. Ela pode ser útil quando não é possível identificar a causa de um erro com as informações na janela Resultados do teste. Como na janela Resultados do teste, a janela Saída inclui links para a linha da classe de teste que falhou. Ela também inclui botões no lado esquerdo para re-executar os testes e para abrir a janela Opções PHP. Botão na janela Saída vinculando com Opções

Janela Saída mostrando os resultados completos do teste PHPUnit

Cobertura de código

O NetBeans IDE para o PHP oferece a cobertura de código junto com o suporte PHPUnit. (O IDE também oferece cobertura de código para Python). A cobertura do código verifica se todos os seus métodos são cobertos pelos testes PHPUnit. Nesta seção, você vê como funciona a cobertura de código com sua classe Calculator existente.

Para utilizar a cobertura de código:

  1. Abra Calculator.php e adicione uma função add duplicada, denominada add2. A classe Calculator agora se parece com o seguinte:
    <?php
    class Calculator {
        /**
         * @assert (0, 0) == 0
         * @assert (0, 1) == 1
         * @assert (1, 0) == 1
         * @assert (1, 1) == 2
         * @assert (1, 2) == 4
         */
        public function add($a, $b) {
            return $a + $b;
        }
    
        public function add2($a, $b) {
            return $a + $b;
        }
    
    }    
    ?>
    
  2. Clique com o botão direito do mouse no nó do projeto. No menu de contexto, selecione Cobertura de código > Coletar e exibir a cobertura de código. Por padrão, Exibir a barra do editor também é selecionada.
    Habilitando a cobertura de código a partir do menu de contexto do nó do projeto
  3. O editor agora tem uma barra de editor de cobertura de código através da parte inferior. Como a cobertura do código ainda não foi testada, a barra do editor reporta 0% de cobertura. (Ela também exibe isso após você clicar em Limpar para limpar os resultados do teste).
    Barra do editor para a cobertura do código antes da execução dos testes
  4. Clique em Testar para testar o arquivo aberto ou em Todos os testes para executar todos os testes do projeto. Os resultados do teste são exibidos. Além disso, a barra Cobertura de código lhe informa qual a porcentagem das instruções de código executáveis é coberta pelos testes. Na janela Editor, o código coberto é realçado em verde e o código não coberto é realçado em vermelho.

    Aviso: se os arquivos de testes forem gerados novamente DEPOIS da adição da função add2, os testes PHPUnit não serão executados. O PHPUnit cria duas funções testAdd2 com conflito. Não diferencie funções acrescentando números no final se você planeja usar o PHPUnit em mais de uma função como essa. Consulte a documentação do PHPUnit.

    Barra do editor para a cobertura do código após a execução dos testes
  5. Na barra Editor, clique em relatório... O relatório de Cobertura de código é aberto mostrando os resultados de todos os testes executados em seu projeto. Os botões no relatório permitem limpar os resultados, reexecutar todos os testes ou desativar a cobertura de código (clique em Concluído).
    relatório de cobertura de código
  6. É possível adicionar outra classe em seu projeto, excluir e recriar os arquivos de teste e examinar novamente o relatório de cobertura de código. Sua nova classe é listada. No relatório a seguir, a classe Calculator tem novamente uma função que não está incluída nos testes.
    relatório de cobertura de código mostrando a segunda classe

Uso de configurações específicas do projeto

No IDE, você pode selecionar as configurações personalizadas seguintes no seu projeto:

  • Um arquivo bootstrap
  • Um arquivo de configuração XML
  • Um suíte de teste

Para definir uma configuração específica do projeto, clique com o botão direito do mouse no nó Testar arquivos do projeto e selecione Propriedades. Isso abre a caixa de diálogo Propriedades. Em seguida, selecione a categoria PHPUnit. É exibida uma caixa de diálogo na qual é possível selecionar um arquivo bootstrap personalizado, um arquivo de configuração XML ou um arquivo de suíte de teste. Se não estiver familiarizado com a estrutura desses arquivos, você pode utilizar o NetBeans IDE para gerar um esquema.

Selecionando as opções personalizados do PHPUnit em uma caixa de diálogo das propriedades do projeto

A opção bootstrap é necessária em projetos que utilizam um carregador de classe personalizado, por exemplo, para implementar a função mágica __autoload(). Também é possível utilizar a opção bootstrap se for necessário incluir um arquivo com antecedência, como um arquivo que defina as constantes globais utilizadas por várias classes no projeto.

O arquivo de configuração XML permite definir as opções utilizadas em uma chamada da linha de comando. Há uma introdução completa no manual do PHPUnit. Também é possível utilizar o arquivo de configuração XML para definir as configurações do php.ini e as variáveis globais dos casos de teste. É possível definir a opção bootstrap também no arquivo de configuração XML.

Se você definir uma suíte de teste personalizada, tal suíte será executada sempre que você selecionar Executar > Testar projeto. Isso é particularmente útil quando você desejar executar somente um subconjunto dos testes ou caso queira utilizar os recursos adicionados recentemente de PHPUnit que devem ser adicionados manualmente, como Provedores de dados.

Observe que você pode definir quantos suítes de teste quiser e executá-los de forma separada clicando com o botão direito do mouse no explorador de projetos e escolhendo "executar".

Para evitar confusões, o NetBeans lhe avisa se estiver utilizando uma suíte de teste personalizado. A notificação pode ser encontrada nos Resultados do teste e na janela Saída.

Executando testes no framework Selenium

O Selenium é uma estrutura de software de teste portátil para aplicativos da Web. Os testes podem ser escritos como tabelas HTML ou codificados em diversas linguagens de programação populares e podem ser executados diretamente na maioria dos navegadores modernos da Web. O Selenium pode ser implantado no Windows, Linux e Macintosh. Para obter mais detalhes, consulte o site do Selenium.

O NetBeans IDE tem um plug-in que inclui um servidor Selenium. Com esse plug-in, é possível executar testes Selenium nos projetos PHP, aplicativos da Web ou Maven. Para executar testes Selenium no PHP, é preciso instalar o pacote Testing Selenium em seu mecanismo PHP.

Para executar testes Selenium no PHP:

  1. Abra um prompt de comando e execute o comando pear install Testing_Selenium-beta. É preciso possuir PHP_HOME/php/PEAR em seu Path. Se o comando obtiver êxito, o prompt exibirá install ok: channel://pear.php.net/Testing_Selenium-0.4.3.
  2. No IDE, abra Ferramentas > Plug-ins e instale o módulo Selenium para o PHP.
  3. Na janela Projetos, clique com o botão direito do mouse no nó do projeto Calculador. Selecione Novo > Outro. O assistente Novo arquivo é aberto. Selecione Selenium e clique em Próximo.
    Assistente Novo arquivo com o arquivo Selenium escolhido
  4. Na primeira vez que você cria um teste Selenium, é exibida uma caixa de diálogo solicitando que você defina o diretório dos arquivos de teste Selenium. Ele deveria ser separado do diretório dos arquivos de teste PHPUnit. Caso contrário, os testes Selenium serão executados cada vez que você executar testes de unidade. A execução de testes funcionais como o Selenium, normalmente levam mais tempo do que a execução de testes de unidade, portanto, você provavelmente não desejará executar estes testes cada vez que executar testes de unidade.
  5. Aceite os padrões na página Nome e localização e clique em Terminar. O novo arquivo de teste Selenium é aberto no editor e aparece na janela Projetos.
    Janela Projetos mostrando o novo teste Selenium
  6. O item Executar testes Selenium está agora adicionado no menu de contexto do projeto. Clique neste item e os resultados do teste Selenium serão exibidos na janela Resultados do teste, da mesma forma que os resultados de testes PHPUnit.

Mais exercícios

Aqui estão mais algumas idéias para você explorar:

  • Adicione uma segunda classe ao Calculator.php, como um classe Calculator2 que multiplica $a e $b. Exclua e gere novamente os testes.
  • Se você experimentar o Tutorial de criação de um aplicativo CRUD de múltiplas partes, crie um teste Selenium para o projeto final.

Para enviar comentários e sugestões, obter suporte e manter-se informado sobre os desenvolvimentos mais recentes dos recursos de desenvolvimento em PHP no NetBeans IDE, junte-se à lista de usuários . Esta lista é espelhada nos fóruns NetBeans IDE.

Consulte também

Para obter mais informações sobre como testar o PHP no NetBeans IDE , consulte os seguintes recursos:

Voltar à trilha do aprendizado PHP

get support for the NetBeans

Support


By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2013, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo