blob: 852c8e2213b28bf8990f67f43fdbc2775d413454 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--
Copyright (c) 2009, 2010, 2011 Oracle and/or its affiliates. All rights reserved.
-->
<html>
<head>
<title>Testando uma Aplicação Corporativa Maven</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
<meta name="description" content="A tutorial on how to use NetBeans IDE to test a database connection in a Maven enterprise application.">
<link rel="stylesheet" href="../../../netbeans.css">
<link rel="stylesheet" type="text/css" href="../../../lytebox.css" media="screen">
<script type="text/javascript" src="../../../images_www/js/lytebox-compressed.js"></script>
<meta name="author" content="ken ganfield">
</head>
<body>
<h1>Testando uma Aplicação Corporativa Maven</h1>
<p>Este tutorial demonstra como testar uma aplicação corporativa simples utilizando arquétipos Maven e NetBeans IDE. Neste tutorial, você cria uma aplicação corporativa que contém uma classe de entidade e um bean de sessão. Você usará um assistente para criar uma classe de teste simples para a classe bean e, em seguida, executará o teste no IDE. A classe de teste criará uma instância do contêiner EJB incorporado no GlassFish para testar a conexão com o banco de dados.
</p>
<p><b>Exercícios do Tutorial</b></p>
<img alt="O conteúdo desta página se aplica ao NetBeans IDE 7.1" class="stamp" src="../../../images_www/articles/71/netbeans-stamp.png" title="O conteúdo desta página se aplica ao NetBeans IDE 7.1">
<ul>
<li><a href="#intro">Utilizando o Maven no IDE</a></li>
<li><a href="#Exercise_1">Criando a Aplicação Corporativa</a>
<ul>
<li><a href="#Exercise_1a">Criando o Projeto Web</a></li>
<li><a href="#Exercise_1b">Criando a Classe de Entidade</a></li>
<li><a href="#Exercise_1c">Criando o Bean de Sessão</a></li>
</ul>
</li>
<li><a href="#Exercise_2">Criando o Teste de Bean de Sessão</a></li>
<!-- <li><a href="#Exercise_3">Checking Code Coverage</a></li>
<li><a href="#Exercise_4">Downloading the Solution Project</a></li>-->
</ul>
<p><b>Para seguir este tutorial, são necessários os recursos e o software a seguir.</b></p>
<table>
<tbody>
<tr>
<th class="tblheader" scope="col">Software ou Recurso</th>
<th class="tblheader" scope="col">Versão Necessária</th>
</tr>
<tr>
<td class="tbltd1"><a href="https://netbeans.org/downloads/index.html">NetBeans IDE</a></td>
<td class="tbltd1">Pacote Java EE 7.1</td>
</tr>
<tr>
<td class="tbltd1"><a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">Java Development Kit (JDK)</a></td>
<td class="tbltd1">versão 6 ou versão 7</td>
</tr>
<tr>
<td class="tbltd1">GlassFish Server Open Source Edition</td>
<td class="tbltd1">3.1.1</td>
</tr>
</tbody>
</table>
<p class="notes"><strong>Observação.</strong> O instalador do GlassFish Server 3.1.1 é incluído quando você faz download do pacote Java EE. Você pode instalar e registrar o GlassFish como parte do processo de instalação do NetBeans IDE.</p>
<p><b>Pré-requisitos</b></p>
<p>Este tutorial pressupõe que você tenha algum conhecimento básico das tecnologias a seguir, ou alguma experiência de programação com elas:</p>
<ul>
<li>Programação em Java</li>
<li>NetBeans IDE</li>
</ul>
<p>Antes de começar este tutorial, talvez você queira se familiarizar com a documentação a seguir.</p>
<ul>
<li><a href="http://wiki.netbeans.org/MavenBestPractices" target="_blank">Melhores Práticas para o Apache Maven no NetBeans IDE</a></li>
<li><a href="http://www.sonatype.com/books/maven-book/reference/introduction.html" target="_blank">Capítulo 1. Introdução ao Apache Maven</a> (do <a href="http://www.sonatype.com/books/maven-book/reference/public-book.html" target="_blank">Maven: o Guia Definitivo</a>)</li>
</ul>
<!-- <p class="tips">You can download <a href="https://netbeans.org/projects/samples/downloads/download/Samples%252FJavaEE%252FMavenEnterpriseApp.zip">a zip archive of the finished project</a>.</p>-->
<a name="intro"></a>
<!-- ===================================================================================== -->
<h2>Utilizando o Maven no IDE</h2>
<p>O suporte ao Maven está totalmente integrado no NetBeans IDE. Desenvolver um projeto que utiliza o framework do Maven é quase igual a desenvolver um projeto no Ant. No entanto, há algumas diferenças relacionadas ao modo como o Maven constrói os projetos e trabalha com as dependências. As dicas a seguir podem ajudá-lo a evitar alguns problemas caso esteja criando uma aplicação Maven pela primeira vez.</p>
<p class="tips"><strong>Verifique as definições do Maven</strong></p>
<div class="indent">
<p>Se este for seu primeiro Projeto Maven, pode ser necessário verificar as definições da configuração do Maven na janela Opções. Para completar este tutorial é preciso ter o Maven instalado em seu sistema local. A partir do NetBeans IDE 7.0, o Maven está incorporado no IDE e é instalado quando você instala o IDE. Se você estiver usando uma versão anterior do IDE, poderá efetuar o download do instalador do <a href="http://maven.apache.org/">site do Maven</a>.</p>
<ol>
<li>Abra a janela Opções no IDE.</li>
<li>Selecione a categoria Diversos na janela Opções e clique na guia Maven.</li>
<li>Confirme se um Início do Maven está especificado.
<p>Você pode usar a versão do Maven incorporada no IDE ou especificar a localização de uma instalação local do Maven (requer versão 2.0.9 ou posterior).</p></li>
<li>Verifique se a localização do repositório local do Maven está correta.</li>
<li>Clique em OK para fechar a janela Opções.</li>
</ol>
<p class="notes"><strong>Observações.</strong> Se você ainda não tiver criado um projeto Maven no IDE, será preciso primeiro ativar o módulo Maven no IDE. Isso pode ser feito selecionando um arquétipo de projeto Maven no assistente Novo Projeto. Quando você selecionar o arquétipo, o IDE ativará automaticamente o módulo. Não é preciso finalizar o assistente para ativar o Maven no IDE.</p>
</div>
<p class="tips"><strong>Atualizar seus repositórios Maven</strong></p>
<div class="indent">
<p>Os repositórios remotos e locais do Maven são utilizados para a funcionalidade autocompletar código e para construir projetos. É necessário atualizar os índices dos repositórios remotos do Maven para garantir que os artefatos necessários estejam prontamente disponíveis no momento de desenvolver o projeto. Você pode configurar com que frequência o IDE verifica as atualizações na guia Maven da janela Opções. Você também pode executar uma verificação imediata das atualizações e explorar os repositórios remotos e locais do Maven no Browser do Repositório do Maven.</p>
<ol>
<li>Selecione Janela > Outro > Browser do Repositório Maven.</li>
<li>Clique em Atualizar Índices (&nbsp;<img alt="Botão Atualizar Índices" src="../../../images_www/articles/72/javaee/maven-testing/maven-refreshrepo.png" title="Botão Atualizar Índices"> &nbsp;) na parte superior da janela Browser do Repositório do Maven.</li>
</ol>
<p>Quando você clica em Atualizar Índices, o IDE verifica e faz o download do índice mais recente de cada um dos repositórios remotos do Maven. Um índice representa o estado atual dos artefatos localizados no repositório e é utilizado para proporcionar referências aos artefatos que estão disponíveis na aplicação. Por default, o IDE não faz download de um artefato de um repositório até que o artefato seja explicitamente necessário.</p>
<p class="notes"><strong>Observação.</strong> Os índices são muito grandes e pode levar algum tempo para atualizar todos eles.</p>
</div>
<p class="tip">Para obter mais detalhes sobre o uso do Maven no NetBeans IDE, consulte a seção <a href="https://netbeans.org/kb/docs/java/maven-hib-java-se.html#02">Configurando o Maven</a> no tutorial <a href="https://netbeans.org/kb/docs/java/maven-hib-java-se.html">Criando uma Aplicação Maven Swing Utilizando Hibernação</a> e também <a href="http://wiki.netbeans.org/MavenBestPractices" target="_blank">Melhores Práticas para o Apache Maven no NetBeans IDE</a>.</p>
<a name="Exercise_1"></a>
<!--Exercise 1: -->
<h2>Criando a Aplicação Corporativa</h2>
<p>Nesta seção, você criará uma aplicação web simples que contém uma classe de entidade e um bean de sessão que acessa a classe de entidade.</p>
<div class="indent">
<a name="Exercise_1a"></a>
<h3>Criando o Projeto Web</h3>
<p>Neste exercício, você utilizará o assistente Novo Projeto para criar uma aplicação web Java EE 6 com base em um arquétipo Maven. Ao criar o projeto com o assistente, você especificará o GlassFish Server 3.1.1 como o servidor de destino.</p>
<ol>
<li>Selecione Arquivo > Novo Projeto (Ctrl-Shift-N; ⌘-Shift-N no Mac) no menu principal para abrir o assistente Novo Projeto.</li>
<li>Selecione Aplicação Web na categoria Maven. Clique em Próximo.</li>
<li>Chame o projeto de <strong>mavenwebtestapp</strong> e defina a localização dele. Clique em Próximo.</li>
<li>Selecione GlassFish Server 3.1.1 na lista drop-down Servidor.</li>
<li>Na lista drop-down Versão do Java EE, selecione Java EE 6 Web. Clique em Finalizar.</li>
</ol>
<p>Quando você clica em Finalizar, o IDE cria a aplicação web e abre o projeto na janela Projetos.</p>
<img alt="Janela Projetos que mostra projetos gerados" class="margin-around b-all" src="../../../images_www/articles/72/javaee/maven-testing/maven-testing-projects.png" title="Janela Projetos que mostra projetos gerados">
<p>Se você expandir o nó do projeto na janela Projetos, poderá notar que o JAR <tt>javaee-web-api-6.0</tt> está listado como uma dependência do projeto e que o JDK 1.6 está listado como uma dependência do Java. O IDE gerou o POM do projeto (<tt>pom.xml</tt>) e o arquivo foi listado no nó Arquivos do Projeto.
</p>
<a name="Exercise_1b"></a>
<h3>Criando a Classe de Entidade</h3>
<p>Neste exercício, você usa o assistente Novo Arquivo para criar uma classe de entidade. Ao criar a classe de entidade, você selecionará a fonte de dados <tt>jdbc/sample</tt> no assistente. Não é preciso criar ou registrar uma nova fonte de dados, pois a fonte de dados <tt>jdbc/sample</tt> foi registrada quando você instalou o servidor.
</p>
<p class="notes"><strong>Observação.</strong> Se quiser criar uma nova fonte de dados ou usar uma fonte de dados diferente, a fonte de dados deverá ser registrada no servidor, antes de você testar a aplicação que usa o contêiner incorporado. Quando você testar a aplicação usando o contêiner incorporado, o IDE não registrará a fonte de dados para você como faz ao implantar em uma instância do GlassFish Server.
</p>
<ol>
<li>Clique com o botão direito do mouse no nó do projeto e selecione Novo > Classe de Entidade.
<p>Como alternativa, selecione Arquivo > Novo Arquivo (Ctrl-N; ⌘-N no Mac) no menu principal e selecione Classe de Entidade na categoria Persistência.</p></li>
<li>Digite <strong>MyEntity</strong> para o Nome da Classe.</li>
<li>Selecione <tt>com.mycompany.mavenwebtestapp</tt> como o Pacote e defina o Tipo de Chave Primária como <strong><tt>int</tt></strong>.</li>
<li>Confirme se Criar Unidade de Persistência está selecionado. Clique em Próximo.</li>
<li>Selecione <strong>jdbc/sample</strong> na lista drop-down Fonte de Dados.</li>
<li>Confirme se a opção Usar APIs de Transação Java está selecionada e selecione Soltar e Criar como a Estratégia de Geração de Tabela. Clique em Finalizar.<br /> <img alt="Janela Projetos que mostra projetos gerados" class="margin-around b-all" src="../../../images_www/articles/72/javaee/maven-testing/maven-testing-pu.png" title="Janela Projetos que mostra projetos gerados">
<p>Quando você clica em Finalizar, o IDE gera a classe MyEntity e abre a classe no editor de código-fonte. O IDE adiciona os artefatos <tt>eclipselink-2.3.0</tt>, <tt>javax.persistence-2.0.3</tt> e <tt>org.eclipse.persistence.jpa.modelgen.processor-2.3.0</tt> como dependências.</p></li>
<li>No editor de código-fonte, adicione o campo privado <tt>nome</tt> à classe.
<pre class="examplecode">private String name;</pre>
</li>
<li>Clique com o botão direito do mouse no editor e selecione Getter e Setter no menu pop-up Inserir Código (Alt-Insert; Ctrl+I no Mac) para gerar um getter e um setter para o campo <tt>nome</tt>. </li>
<li>Adicione o seguinte método
<pre class="examplecode">
public MyEntity(int id) {
this.id = id;
name = "Entity number " + id + " created at " + new Date();
}</pre>
</li>
<li>Adicione as anotações <tt>@NamedQueries</tt> e <tt>@NamedQuery</tt> a seguir (em negrito) para criar uma consulta SQL nomeada que localizará todos os registros na tabela MyEntity.
<pre class="examplecode">
@Entity
<strong>@NamedQueries({
@NamedQuery(name = "MyEntity.findAll", query = "select e from MyEntity e")})</strong>
public class MyEntity implements Serializable {</pre>
<p></p>
</li>
<li>Clique na dica na margem esquerda próximo da declaração de classe e selecione a dica <strong>Criar construtor default</strong>.<br /> <img alt="Janela Projetos que mostra projetos gerados" class="margin-around b-all" src="../../../images_www/articles/72/javaee/maven-testing/maven-testing-createconstructor.png" title="Janela Projetos que mostra projetos gerados">
</li>
<li>Corrija as instruções de importação (Ctrl-Shift-I; ⌘-Shift-I no Mac) para adicionar instruções de importação para <tt>javax.persistence.NamedQuery</tt>, <tt>javax.persistence.NamedQueries</tt> e <tt>java.util.Date</tt>. Salve as alterações. <br />
</li>
</ol>
<a name="Exercise_1c"></a>
<h3>Criando o Bean de Sessão</h3>
<p>Neste exercício, você utilizará o assistente para criar uma fachada de sessão para a classe de entidade <tt>MyEntity</tt>. Quando você usa o assistente para gerar a fachada, o IDE também gerará uma fachada abstrata que contém alguns métodos, como <tt>create</tt> e <tt>find</tt>, que são usados comumente ao acessar classes de entidade. Você adicionará, em seguida, dois métodos à fachada.
</p>
<ol>
<li>Clique com o botão direito do mouse no nó do projeto e selecione Novo > Outro.
<p>Como alternativa, selecione Arquivo > Novo Arquivo (Ctrl-N; ⌘-N no Mac) no menu principal para abrir o assistente Novo Arquivo.</p></li>
<li>Selecione Beans de Sessão para Classes de Entidade na categoria Enterprise JavaBeans. Clique em Próximo.</li>
<li>Na lista de Classes de Entidade Disponíveis, selecione <tt>MyEntity</tt> e clique em Adicionar. Clique em Próximo.</li>
<li>Use as propriedades default no painel Beans de Sessão Gerados do assistente. Clique em Finalizar.
<p>Quando você clicar em Finalizar, o IDE gerará <tt>AbstractFacade.java</tt> e <tt>MyEntityFacade.java</tt> no pacote <tt>com.mycompany.mavenwebtestapp</tt> e abrirá as classes no editor de código-fonte.</p>
<p>No editor de código-fonte, você poderá ver que o IDE gerou o código para <tt>EntityManager</tt> e adicionou a anotação <tt>@PersistenceContext</tt> para especificar a unidade de persistência.</p>
<pre class="examplecode">
@Stateless
public class MyEntityFacade extends AbstractFacade&lt;MyEntity&gt; {
@PersistenceContext(unitName = "com.mycompany_mavenwebtestapp_war_1.0-SNAPSHOTPU")
private EntityManager em;
@Override
protected EntityManager getEntityManager() {
return em;
}
public MyEntityFacade() {
super(MyEntity.class);
}
}</pre>
</li>
<li>Adicione os seguintes métodos a <tt>MyEntity.java</tt>.
<pre class="examplecode">
@PermitAll
public int verify() {
String result = null;
Query q = em.createNamedQuery("MyEntity.findAll");
Collection entities = q.getResultList();
int s = entities.size();
for (Object o : entities) {
MyEntity se = (MyEntity) o;
System.out.println("Found: " + se.getName());
}
return s;
}
@PermitAll
public void insert(int num) {
for (int i = 1; i <= num; i++) {
System.out.println("Inserting # " + i);
MyEntity e = new MyEntity(i);
em.persist(e);
}
}</pre>
</li>
<li>Corrija suas importações para adicionar as instruções de importação necessárias. Salve as alterações. <br /> <img alt="Janela Projetos que mostra projetos gerados" class="margin-around b-all" src="../../../images_www/articles/72/javaee/maven-testing/maven-testing-fiximports.png" title="Janela Projetos que mostra projetos gerados">
<p class="notes"><strong>Observação.</strong> Confirme se <strong><tt>javax.persistence.Query</tt></strong> está selecionado na caixa de diálogo Corrigir Todas as Importações.</p>
</li>
</ol>
</div>
<a name="Exercise_2"></a>
<h2>Criando o Teste do Bean de Sessão</h2>
<p>Nesta seção, você criará uma classe de teste JUnit para a fachada de sessão <tt>MyEntityFacade</tt>. O IDE gerará métodos de teste esqueletos para cada um dos métodos na classe de fachada, bem como para cada um dos métodos na fachada abstrata. Você anotará os métodos de teste que são gerados para os métodos na fachada abstrata para instruir o IDE e o executor do teste de JUnit a ignorá-los. Em seguida, você modificará o método de teste do método <tt>verify</tt> que foi adicionado a <tt>MyEntityFacade</tt>.
</p>
<p>Nos testes gerados, você verá que o IDE adiciona automaticamente um código que chama o <tt>EJBContainer</tt> para criar uma instância do contêiner EJB. Quando a classe de teste é gerada, a linha que contém a chamada tem uma dica na margem esquerda de que a API Java EE não está no classpath e uma sugestão para usar o EJBContainer a partir da instalação do GlassFish Server 3.1. Essa dica modificará o POM para adicionar uma propriedade que especifica o caminho para a instalação local do GlassFish.
</p>
<!-- <p>The Ant version includes steps to use @BeforeClass and @AfterClass to create and close the container,
but these annotations do not seem to work with Maven.</p>-->
<ol>
<li>Clique com o botão direito do mouse em <tt>MyEntityFacade.java</tt> na janela Projetos e selecione Ferramentas > Criar Testes JUnit.</li>
<li>Selecione JUnit 4.x como a versão do JUnit. Clique em Selecionar.</li>
<li>Use as opções default na caixa de diálogo Criar Testes. Clique em OK.
<p>Por default, o IDE gera uma classe de teste esqueleto que contém testes para cada um dos métodos em <tt>MyEntityFacade</tt> e <tt>AbstractFacade</tt>. O IDE adiciona, automaticamente, uma dependência no JUnit 4.10 para o POM.</li>
<li>Anote cada um dos métodos de teste, exceto <tt>testVerify</tt>, com a anotação <tt>@Ignore</tt>. O IDE ignorará cada um dos testes anotados com <tt>@Ignore</tt> ao executar os testes.
<p>Como alternativa, você pode deletar todos os métodos de teste, exceto <tt>testVerify</tt>.</p>
</li>
<li>Localize o método de teste <tt>testVerify</tt> na classe de teste.
<p>Você pode ver que há uma anotação de erro na margem esquerda, perto da linha que chama <tt>EJBContainer</tt>.</p>
<pre class="examplecode">
@Test
public void testVerify() throws Exception {
System.out.println("verify");
EJBContainer container = javax.ejb.embeddable.EJBContainer.createEJBContainer();
MyEntityFacade instance = (MyEntityFacade)container.getContext().lookup("java:global/classes/MyEntityFacade");
int expResult = 0;
int result = instance.verify();
assertEquals(expResult, result);
container.close();
// TODO review the generated test code and remove the default call to fail.
fail("The test case is a prototype.");
}</pre>
</li>
<li>Clique na anotação de erro na margem e selecione <strong>Usar EJBContainer da instalação do GlassFish Server 3.1.1</strong> nas sugestões no menu pop-up.
<p>Como alternativa, coloque o cursor de inserção na linha que produziu o erro e pressione Alt+Return. Em seguida, selecione a sugestão no menu pop-up. </p>
<a href="../../../images_www/articles/72/javaee/maven-testing/maven-testing-ejbcontainer.png" rel="lytebox" title="Selecione a dica para especificar o local do EJBContainer"> <img alt="tela que mostra a dica do editor para especificar a localização do EJBContainer" class="margin-around b-all" src="../../../images_www/articles/72/javaee/maven-testing/maven-testing-ejbcontainer.png" style="width: 600px" title="Clique para aumentar"></a>
<p>Quando você seleciona a sugestão, o IDE adiciona o elemento <tt>&lt;glassfish.embedded-static-shell.jar></tt> (em negrito) ao elemento <tt>&lt;properties></tt> no POM. O elemento <tt>&lt;glassfish.embedded-static-shell.jar></tt> é usado para identificar o caminho para a instalação local do GlassFish Server. Será preciso modificar esse elemento no POM se o caminho para a instalação local for alterado.
</p>
<pre class="examplecode">
&lt;properties&gt;
&lt;endorsed.dir&gt;${project.build.directory}/endorsed&lt;/endorsed.dir&gt;
&lt;project.build.sourceEncoding&gt;UTF-8&lt;/project.build.sourceEncoding&gt;
<strong>&lt;glassfish.embedded-static-shell.jar&gt;/Applications/NetBeans/glassfish-3.1.1/glassfish/lib/embedded/glassfish-embedded-static-shell.jar&lt;/glassfish.embedded-static-shell.jar&gt;</strong>
<!-- &lt;glassfish.embedded-static-shell.jar&gt;/Applications/NetBeans/glassfish-3.1.1/glassfish/lib/embedded/glassfish-embedded-static-shell.jar&lt;/glassfish.embedded-static-shell.jar&gt;-->
&lt;/properties&gt;
</pre>
<p>O IDE também adiciona uma dependência em <tt>glassfish-embedded-static-shell</tt> para o POM que referencia o caminho para a instalação local.</p>
<pre class="examplecode">
&lt;dependency&gt;
&lt;groupId&gt;org.glassfish.extras&lt;/groupId&gt;
&lt;artifactId&gt;glassfish-embedded-static-shell&lt;/artifactId&gt;
&lt;version&gt;3.1.1&lt;/version&gt;
&lt;scope&gt;system&lt;/scope&gt;
&lt;systemPath&gt;${glassfish.embedded-static-shell.jar}&lt;/systemPath&gt;
&lt;/dependency&gt;
</pre>
</li>
<li>Faça as seguintes alterações (em negrito) no esqueleto do método de teste <tt>testVerify</tt>.
<pre class="examplecode">
@Test
public void testVerify() throws Exception {
System.out.println("verify");
EJBContainer container = javax.ejb.embeddable.EJBContainer.createEJBContainer();
MyEntityFacade instance = (MyEntityFacade)container.getContext().lookup("java:global/classes/MyEntityFacade");
<strong>System.out.println("Inserting entities...");
instance.insert(5);</strong>
int result = instance.verify();
<strong>System.out.println("JPA call returned: " + result);
System.out.println("Done calling EJB");
Assert.assertTrue("Unexpected number of entities", (result == 5));</strong>
container.close();
}</pre>
</li>
<li>Corrija as instruções de importação para adicionar <tt>junit.framework.Assert</tt>. Salve as alterações.</li>
<li>Clique com o botão direito do mouse no nó do projeto na janela Projetos e selecione Testar. </li>
</ol>
<p>Quando você selecionar Testar, o IDE construirá a aplicação e executará a fase de teste do ciclo de vida da construção. Os testes de unidade serão executados com o plug-in surefire, que suporta a execução de testes JUnit 4.x. Para saber mais sobre o plug-in surefire, consulte <a href="http://maven.apache.org/plugins/maven-surefire-plugin/">http://maven.apache.org/plugins/maven-surefire-plugin/</a>.</p>
<p>Os resultados do teste serão exibidos na janela Resultados do Teste.</p>
<p>Neste exemplo, você pode ver que nove testes passaram. Se observar a janela Saída, você poderá ver que somente um teste foi executado e oito testes foram ignorados.</p>
<pre class="examplecode">
Running com.mycompany.mavenwebtestapp.MyEntityFacadeTest
verify
...
Inserting entities...
Inserting # 1
Inserting # 2
Inserting # 3
Inserting # 4
Inserting # 5
Found: Entity number 2 created at Fri Feb 25 18:26:53 CET 2011
Found: Entity number 4 created at Fri Feb 25 18:26:53 CET 2011
Found: Entity number 3 created at Fri Feb 25 18:26:53 CET 2011
Found: Entity number 1 created at Fri Feb 25 18:26:53 CET 2011
Found: Entity number 5 created at Fri Feb 25 18:26:53 CET 2011
JPA call returned: 5
Done calling EJB
...
Results :
Tests run: 9, Failures: 0, Errors: 0, Skipped: 8
</pre>
<!-- <a name="Exercise_3"></a>
<h2>Checking Code Coverage</h2>
<p>In this section you install the Maven Code Coverage plugin and configure the POM to add reporting. See http://wiki.netbeans.org/MavenCodeCoverage</p>
<ol>
Download and install plugin
<li>Open the Services window in the IDE.</li>
<li>Expand the sample datasource connection under the Database node.</li>
<li>Expand the Tables node under the App node.</li>
<li>Right-click the SEQUENCE table and choose Delete.</li>
<li>Add the following to the POM. Save your changes.
<pre class="examplecode">&lt;/dependencies&gt;
<strong>&lt;reporting&gt;
&lt;plugins&gt;
&lt;plugin&gt;
&lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
&lt;artifactId&gt;cobertura-maven-plugin&lt;/artifactId&gt;
&lt;version&gt;2.5.1&lt;/version&gt;
&lt;/plugin&gt;
&lt;/plugins&gt;
&lt;/reporting&gt;</strong>
&lt;build&gt;</pre>
</li>
<li>Right-click project node and choose Code Coverage &gt; Show Report.</li>
<li>Open MyEntityFacadeTest in the editor.</li>
<li>Modify the test to change the JNDI lookup for the bean from
<tt>java:global/classes/MySessionBean</tt> to <tt>java:global/cobertura/MySessionBean</tt>.
<pre class="examplecode">
@Test
public void testVerify() throws Exception {
System.out.println("verify");
EJBContainer container = javax.ejb.embeddable.EJBContainer.createEJBContainer();
// MyEntityFacade instance = (MyEntityFacade)container.getContext().lookup("java:global/classes/MyEntityFacade");
<strong>MyEntityFacade instance = (MyEntityFacade)container.getContext().lookup("java:global/cobertura/MyEntityFacade");</strong>
System.out.println("Inserting entities...");
instance.insert(5);
int result = instance.verify();
System.out.println("JPA call returned: " + result);
System.out.println("Done calling EJB");
Assert.assertTrue("Unexpected number of entities", (result==5));
container.close();
}</pre>
</li>
<li>Click Run All Tests in Code Coverage window.
<p>Result displays coverage is 0% and the following is in the Output window. </p>
</li>
</ol>-->
<br>
<div class="feedback-box" ><a href="/about/contact_form.html?to=3&amp;subject=Feedback:%20Creating%20an%20Enterprise%20Application%20Using%20Maven">Envie-nos Seu Feedback</a></div>
<br style="clear:both;" >
<!-- ======================================================================================= -->
<h2><a name="nextsteps"></a>Consulte Também</h2>
<p>Para obter mais informações sobre o uso do NetBeans IDE para desenvolver aplicações Java EE, consulte os seguintes recursos:
</p>
<ul>
<li><a href="../../docs/javaee/javaee-intro_pt_BR.html">Introdução à Tecnologia Java EE</a></li>
<li><a href="../../docs/javaee/javaee-gettingstarted_pt_BR.html">Introdução às Aplicações do Java EE 6</a></li>
<li><a href="../../docs/javaee/javaee-entapp-ejb_pt_BR.html">Criando uma Aplicação Enterprise com o EJB 3.1</a></li>
<li><a href="../../trails/java-ee_pt_BR.html">Trilha de Aprendizado do Java EE e Java Web</a></li>
</ul>
<p>Para obter mais informações sobre o uso de Enterprise Beans, consulte o <a href="http://download.oracle.com/javaee/6/tutorial/doc/">Tutorial do Java EE 6</a>.</p>
<p>Para enviar comentários e sugestões, obter suporte e se manter informado sobre os mais recentes desenvolvimentos das funcionalidades de desenvolvimento do Java EE do NetBeans IDE, <a href="../../../community/lists/top.html">inscreva-se na lista de correspondência de nbj2ee</a>.</p>
</body>
</html>