Implementando eXtreme Programming em Java
Integra��o cont�nua e testes de unidade
Nova vers�o (COMDEX):
- T�picos novos: CVS, AntHill e Gump (08/2002).
Download:
- xpjava.zip (slides em PDF) (825 kB)
- exemplos.zip (arquivos-exemplo) (362 kB). N�o inclui depend�ncias (veja abaixo).
Ant e JUnit, duas ferramentas open-source, podem ser usadas para implementar
testes de unidade e integra��o cont�nua, duas das 12 pr�ticas fundamentais
do XP (eXtreme Programming). Esta palestra mostrar� como usar essas duas ferramentas em conjunto
para aumentar a produtividade e qualidade de qualquer projeto baseado em Java, e discutir�
estrat�gias para implementa��o de testes de unidade. Ser�o
exploradas tamb�m as ferramentas Cactus - uma extens�o do JUnit que permite
testar a integra��o de componentes Web, CVS - ferramenta open-source para controle de vers�es, CruiseControl, AntHill e Gump: ferramentas que automatizam o processo de integra��o cont�nua.
Dura��o: 6 horas (1 a 1,5 hora cada bloco)
P�blico-alvo: desenvolvedores Java
Pr�-requisitos: experi�ncia em desenvolvimento Java; conhecimento elementar de aplica��es Web para J2EE e XML.
Roteiro
- Por que testar e integrar? Como?
- JUnit: testes de unidade
- Como usar o JUnit
- Como escrever um TestCase
- Integra��o JUnit e Ant: <junitreport>
- Limita��es e dificuldades
- Ant: integra��o
- Como usar o Apache Ant
- Recursos essenciais: Javac, Mkdir, Copy, Jar...
- Recursos interessantes: CVS, filtros, War, Javadoc, FTP
- Demonstra��es
- Cactus: testes de integra��o
- Como usar o Apache Cactus
- Como escrever um TestCase para um servlet
- Demonstra��es
- CVS e ferramentas para integra��o cont�nua
- Tutorial CVS
- CruiseControl
- AntHill
- Jakarta Gump
- Demonstra��es com CVS
- Conclus�es e fontes
Veja tamb�m eXtreme Programming (palestra).
Apresenta��es realizadas: Depto. de Sistemas e Computa��o da UFPB, Campina Grande, PB (fev/02); Editora Gr�ficos Burti, S�o Paulo, SP (fev/02); Sociedade de Usu�rios Java da SUCESU-SP (fev/02); CESAR - Centro de Estudos e Sistemas Avan�ados do Recife (mar/02); Centro de Tecnologia da UFSC, Florian�polis, SC (jul/2002); Abaporu Brasil@JavaOne e COMDEX 2002, S�o Paulo, SP (ago/2002)
Download: arquivos-exemplo (separados) e depend�ncias
1. Arquivos-exemplo (baixe tudo de uma vez em exemplos.zip)
Novos exemplos est�o sendo adicionados periodicamente. Exemplos que usam Cactus e HttpUnit foram atualizados. Agrade�o a todos que enviaram contribui��es (ainda n�o inclu� todas).
- 1) antdemo.zip (4kB): exemplo de um buildfile simples usado para compilar um pacote.
- 2) scriptdemo.zip (2kB): exemplo simples do uso da tarefa <script>. Requer JARs
adicionais (veja abaixo).
- 3) taskdemo.zip (5kB): exemplo simples do uso da tarefa <taskdef> e da cria��o
de tarefas usando a API do Ant.
- 4) helloejb.zip (8kB): mini-aplica��o EJB. Um Ant buildfile � usado para automatizar a cria��o de um
arquivo EAR que consiste de um EJB JAR, JAR do cliente e arquivo WAR. O arquivo resultante
pode ser implantado em um servidor de aplica��es J2EE.
- 5) hellormi.zip (6kB): Mini-aplica��o RMI. Um Ant buildfile � usado para compilar todas as
classes, gerar os stubs e skeletons e empacotar o cliente e servidor em JARs distintos.
- 6) taglibdemo.zip (22kB): Uma biblioteca de custom tags JSP � montada (JAR e TLD) como subprojeto.
de um projeto Ant que cria e instala um arquivo WAR contendo a biblioteca, p�ginas JSP e JavaBeans.
- 7) minied.zip (10kB): Um mini-aplicativo Swing. O buildfile � usado para gerar um JAR execut�vel,
documenta��o (JavaDoc) e Zips para distribui��o.
- 8) junitdemo.zip (6kB): exemplo simples para demonstrar o funcionamento do JUnit e <junitreport>.
- 9) foptask.zip (42kB): projeto que cria duas novas tarefas para o Ant: <fop> e <rtf> que,
respectivamente, transformam documentos XML em PDF e RTF com o aux�lio da tarefa <style>
que transforma XML em XSL-FO usando uma folha de estilos XSLT. Este exemplo requer v�rios
JARs adicionais (veja abaixo).
- 10) cactusdemo.zip (13kB): exemplo para demonstrar o funcionamento do Cactus com o ServletRedirector
e JspRedirector (do livro Java Tools For Extreme Programming). Requer Cactus (veja abaixo). Atualizado para suportar Cactus 1.3.
- 11) strutsdemo.zip (16kB): exemplo para demonstrar o funcionamento do Cactus testando alguns
custom tags populares do Jakarta Struts. Requer Cactus (veja abaixo).
- 12) soundemo.zip (26kB): exemplo para demonstrar a tarefa <sound>. Requer JMF (veja abaixo).
2. Depend�ncias: Para rodar a maior parte dos exemplos, � necess�rio:
- Ter o Apache Ant instalado (para todos os exemplos). Obtenha a �ltima vers�o do Ant em
http://jakarta.apache.org/ant/.
- Instalar o junit.jar no Ant e/ou aplica��es (veja no README.txt de cada aplica��o).
Obtenha o JUnit Framework em http://www.junit.org
Exemplo (2): � preciso copiar para o diret�rio lib/ da sua instala��o de Ant:
Por conveni�ncia, as vers�es usadas est�o empacotadas no ZIP abaixo (somente os JARs):
Exemplo (9): � preciso copiar 5 JARs para o diret�rio lib/ do
Ant ou para o taskdef/lib da aplica��o.
Por conveni�ncia, as vers�es usadas est�o empacotadas no ZIP abaixo (somente os JARs):
Exemplos (10) e (11): � preciso instalar e configurar o Apache Cactus (veja como
no README.txt da aplica��o e na palestra). O Cactus pode ser encontrado em:
Exemplo (11): requer o Jakarta Struts (um framework MVC para JSP)
Exemplo (4): requer o J2EE SDK ou j2ee.jar para gerar os componentes.
Exemplos (6), (10) e (11): requerem um servidor Web compat�vel com o Jakarta-Tomcat.
Exemplo (12): Requer Java Media Framework (talvez voc� j� tenha no seu CLASSPATH. Teste antes. Se n�o tiver, obtenha-o do site da Sun e copie o jmf.jar para o lib/ do Ant.)