26 mar 2012

Cobertura con Sonar

La Cobertura de código hace referencia a las líneas de código cubiertas por nuestros test. A mayor cobertura mayor cantidad de código esta siendo probado.

Para poder obtener la cobertura de nuestro código en sonar solo debemos agregar la siguiente dependencia:

org.codehaus.sonar.plugins
sonar-plugin-cobertura
1.5M3

Funciona ejecutando el comando (y teniendo configurado el profile)
mvn sonar:sonar
o ejecutandolo desde husdon.


26 feb 2012

Configurando Maven y Android

Primero descargamos:
ANDROID SDK
MAVEN

Luego configurar las siguientes variables de entorno:
- ANDROID_HOME > <path>\android-sdk-windows
- M2_HOME > <path>\apache-maven-3.0.3

Ahora descargamos: maven-android-sdk-deployer y si tenemos todas las versiones de Android ejecutamos:
mvn install
Para mayor información podemos leer el arvchivo README.markdown que viene dentro del directorio. NOTA: Estos artefactos que se suben a nuestro repositorio local serán usados mas adelante De aquí podemos conseguir los plugins que necesitamos para nuestro eclipse. Creamos un nuevo Maven Project y cuando lleguemos a seleccionar el archetype:
Seleccionamos Add Archetype y agregamos lo siguiente: GroupId: de.akquinet.android.archetypes ArtifactId: android-quickstart Version: 1.0.7 En la siguiente pantalla podemos editar el platform (por defecto 7) y android-plugin-version (por defecto 3.0.0)
En mi caso usare: platform 15 android-plugin-version 3.1.1 Ahora editaremos nuestro pom.xml en las dependencias:


 4.0.0
 com.android
 android
 0.0.1-SNAPSHOT
 apk
 android

 
  4.0.3_r1
  15_r1
 

 
  
   android
   android
   ${android-version}
   provided
  
  
   com.google.android.maps
   maps
   ${android-maps-version}
   provided
  
  
   android.support
   compatibility-v4
   r6
  
 

 
  
   
    com.jayway.maven.plugins.android.generation2
    android-maven-plugin
    3.1.1
    
     ${project.basedir}/AndroidManifest.xml
     
     ${project.basedir}/assets
     ${project.basedir}/res
     ${project.basedir}/src/main/native
     
     
      15
     
     true
     true
    
    true
   

   
    maven-compiler-plugin
    2.3.2
    
     1.6
     1.6
    
   
  
 

Ahora podemos ejecutar nuestro proyecto.

25 feb 2012

Primeros pasos con SONAR y MAVEN

Sonar ver. 2.13.1
Maven ver. 3.0.3 

SONAR (download)
Usaremos una Base de Datos MySQL donde primero tenemos que crear un nuevo SCHEMA llamado sonar.
sonar-2.13.1\conf modificar el archivo sonar.properties
sonar.jdbc.username:                       root
sonar.jdbc.password:                       root
sonar.jdbc.url:            jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
sonar.jdbc.driverClassName:                com.mysql.jdbc.Driver
sonar.jdbc.validationQuery:                select 1
sonar.jdbc.maxActive:                      20
sonar.jdbc.maxIdle:                        5
sonar.jdbc.minIdle:                        2
sonar.jdbc.maxWait:                        5000
sonar.jdbc.minEvictableIdleTimeMillis:     600000
sonar.jdbc.timeBetweenEvictionRunsMillis:  30000
sonar.notifications.delay=60
En versiones anteriores podiamos configurar usando JNDI, para ese caso agregamos los 2 siguientes pasos: 1.- En la ruta <tomcat-server>\conf\Catalina\localhost creamos un archivo llamado sonar.xml y agregamos las siguientes lineas:

  
2.- En la ruta <tomcat-server>\conf en el archivo server.xml dentro del tag <globalnamingresources> agregamos:
Para construir el artefacto WAR debes ir a la ruta sonar-2.13.1\war y ejecutar build-war.bat (windows) o build-war.sh (linux) Colocar el WAR creado en el webapp de nuestro tomcat, este creara las tablas en el esquema indicado y luego podremos acceder ingresando http://<host>:<port>/sonar con las credenciales usuario admin y password admin. En el pom.xml de nuestro proyecto MAVEN agregamos estas lineas

  
   sonar
   
    true
   
   
    jdbc:mysql://localhost:3306/sonar
    com.mysql.jdbc.Driver
    root
    root
    
    http://localhost:8083/sonar
   
  
 
Y ahora podemos ejecutar:
mvn sonar:sonar

21 oct 2011

Selenium y Android


Descargar el siguiente artefacto android-server-version.apk de http://code.google.com/p/selenium/downloads/list

Trabajando con el Emulador
Verificar que la siguiente opción este marcada Android Emulator -> Settings -> Applications -> Unknown sources
Una vez iniciado el emulador, procedemos a instalar el android-server.apk:
$./adb -e install -r  android-server.apk
Configuración de puertos:
$~/android_sdk/platform-tools/adb forward tcp:8080 tcp:8080


Trabajando con un Equipo Real
Conectamos nuestro equipo a la PC. Luego, obtendremos el serialid de nuestro equipo conectado:
$~/android_sdk/platform-tools/adb devices
Copiamos el serialid que se obtuvo. Ahora instalaremos el apk en el equipo:
$./adb -s <serialid> -e install -r android-server.apk
Configuración de puertos:
$~/android_sdk/adb -s <serialid> forward tcp:8080 tcp:8080

Ahora podremos ejecutar cualquier test, para que se ejecute en el browser de nuestro equipo Android.

Para mas información, visitar http://code.google.com/p/selenium/wiki/AndroidDriver

27 jul 2011

Selenium RC y Selenium Grid

En esta entrada vamos a tocar Selenium, una herramienta para automatizar test a aplicaciones web y Selenium Grid para correr nuestros test en paralelo (de manera distribuida). Actualmente se encuentra en su version 2.x y estos muchachos si que estan trabajando... en las 2 ultimas semanas han lanzados 2 builds corrigiendo muchos issues.

-Para levantar el servicio de Grid, ejecutamos en la linea de comandos:
java -jar selenium-server-standalone-2.1.0.jar -role hub


Como se puede notar le indicamos que se comporte con un hub por defecto se ocupara el puerto 4444 si queremos indicarle que use otro simplemente añadimos -port XXXX

-Para levantar el servicio de RC, ejecutamos en la linea de comandos:
java -jar selenium-server-standalone-2.1.0.jar -trustAllSSLcertificates -role rc -hub http://localhost:4444/grid/register -port 5555


Le indicamos que asuma el role de RC (Remote Control) y tambien quien sera el hub en nuestro caso localhost:XXXX y el puerto de esucha.

Aparte le añadimos el parametro -trustAllSSLcertificates para que no haya problema cuando queramos entrar a una pagina que use el protocolo https

Pero, si solamente queremos correr las pruebas en nuestro local... bastara ejecutando:
java -jar selenium-server-standalone-2.1.0.jar -trustAllSSLcertificates -port 5555

29 mar 2011

Creando Super POM con Maven

En el afán de refactorizar mis primeros proyectos con Maven, decidí crear mi SUPER POM y hacer uso de la herencia con esta herramienta. Para los que no lo saben Maven es una herramienta que nos permite gestionar y construir nuestros proyectos de una forma rápida y administrar las dependencias de una forma sencilla. Con esta herramienta le diremos adiós a las búsquedas de los jar y sus dependencias.

Primero creemos nuestro SUPER POM:

1. Asumiendo que trabajamos con eclipse, damos clic derecho en el Project Explorer >> New >> Other >> buscamos Maven Project


2. Aparecerá otra ventana en la que daremos Next.

3. Ahora nos toca elegir el artefacto que crearemos. Primero en Catalog seleccionamos All, y en Filter escribimos root y seleccionamos el que nos indica la figura


 4. Luego ingresamos el Group Id, Artifact Id y el package como en la figura


 5. El proyecto que se creara con un pom.xml dentro de el donde podemos colocar nuestras dependencias que usamos mas en nuestros proyectos.

Por último, las líneas que tendremos que colocar en el pom de nuestro proyecto web por ejemplo son:


 SUPER-POM
 com.tutorial
 1.0.0.SNAPSHOT
 ../SUPER-POM


Y es asi como nuestro proyecto web hereda las dependencias que necesita de nuestro Super POM.

26 mar 2011

Plugins para Eclipse (Helios)

Bueno en esta oportunidad quiero dar una relación de plugins para poder tunear nuestro eclipse, en este caso el Helios... cierto cierto ya salio un Milestone de Eclipse Indigo y hay rumores de un Eclipse Orion.

La relación de plugins:
- Android
GIT
JasperAssistant
- JBoss Tools (aqui encontraran Hibernate Tools y Struts Tools)
Liferay
- Maven
Maven for Android (pre-requisito tener Maven)
- Mybatis
- Spring (Milestone or Release)
- Subversion
- Wireframesketcher

Espero que estas herramientas les pueda servir... simplemente pueden usarlo para saber que herramientas no deben faltar en su IDE preferida, usar el Marketplace de Eclipse y buscarlo, o colocar el link directamente.