2010-06-06 13 views
15

estoy aprendiendo Scala y le gustaría establecer la unidad de pruebas integrado en Eclipse. Por lo que yo puedo decir por googlear, ScalaTest es el camino a seguir, posiblemente en combinación con JUnit.¿Cómo se prueba la unidad Scala en Eclipse?

¿Cuáles son sus experiencias con la unidad de prueba Scala en Eclipse? ¿Debo usar el corredor JUnit o algo más?

+2

No lo he probado, pero hay algo de documentación aquí: https://www.assembla.com/wiki/show/scala-ide/Using_Unit_Testing_Frameworks –

+1

@Matt Gracias, esto funciona, deberías agregarlo como respuesta , actualmente. –

Respuesta

5

sólo para mantener las respuestas al día: ScalaTest ahora viene con un eclipse plugin, que debe manejar la ejecución de pruebas de Eclipse fuera de la caja.

6

No pude ejecutar las especificaciones de ScalaTest con JUnit runner inside eclipse. Creo que esto se debe a la ausencia de los métodos anotados @Test. Sin embargo, si su proyecto tiene soporte Maven, puede ejecutar sus especificaciones desde la línea de comando usando mvn test. Para que el complemento Surefire detecte sus especificaciones, use la siguiente configuración en su archivo pom.

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.5</version> 
    <configuration> 
    <includes> 
    <include>**/*Spec.class</include> 
    </includes> 
    </configuration> 
</plugin> 

Echa un vistazo a these example como referencia.

+0

Esto ha sido mejorada - ver @ respuesta de Eric como un puntero a la página web: http: //www.assembla.com/wiki/show/scala-ide/Using_Unit_Testing_Frameworks –

1

No pude realizar pruebas unitarias desde Eclipse (admitamos que no lo intenté demasiado), pero si está dispuesto a echar un vistazo a IntelliJ, ScalaTest funciona desde el IDE sin problemas.

+0

Resultó que el corredor JUnit me funcionó de inmediato en Eclipse. Solo tuve que importar el paquete correcto y escribir @test antes de los métodos de prueba, al igual que en Java. Aunque todavía no he probado ScalaTest. –

+0

Recomiendo usar IntelliJ, cuando comencé las pruebas unitarias con scala (http://www.persistentpanda.com/2011/03/unit-testing-with-scala.html), lo único que Eclipse me dio fue un dolor de cabeza . Especialmente con proyectos de Maven. –

2

He pasado los últimos días tratando de encontrar una combinación de pruebas unitarias que funcionen con scala para mi proyecto y esto es lo que he encontrado.

Estoy utilizando los candidatos de lanzamiento para Scala 2.8 porque soluciona una serie de errores que me bloqueaban en 2.7.2. Al principio me trató de conseguir Scalatest trabajar con 2.8, pero era incapaz de encontrar una solución estable, en el futuro que puede ser un mejor camino a seguir, pero en la actualidad parece que hay demasiado en el flujo alrededor de la liberación 2.8.

La configuración He trabajo es utilizar las anotaciones junit4 en mi código de prueba Scala de este modo:

 
import org.junit._ 

import Assert._ 

class TestSuite{ 

    @Test def testSimple(){ 
    asserEquals("Equal",1,1) 
    } 
} 

Entonces estoy usando un conjunto de pruebas JUnit Java para ejecutar todas mis pruebas juntas de esta manera:

 
import junit.framework.Test; 
import junit.framework.TestSuite; 
import org.junit.runner.RunWith; 
import org.junit.runners.Suite; 

@RunWith(Suite.class) 
@Suite.SuiteClasses({ 
    TestSuite.class 
    }) 
public class AllTests { 

    public static Test suite() { 
    TestSuite suite = new TestSuite("Test Suite"); 
    return suite; 
    } 

} 

El único truco adicional es agregar el directorio de salida como un directorio fuente en Eclipse para que el corredor JUnit pueda encontrar sus archivos de clase. Esto es un truco, pero parece funcionar.

Proyecto-> Propiedades-> Java Build Path-> Source-> Add Folder y luego haz clic en las clases (o bin, donde sea que estés compilando tus archivos de clase).

Esto funciona muy bien en Eclipse haciendo clic derecho sobre AllTests.java y seleccionando RunAs-> Junit

+0

Descubrí que podía hacer clic derecho en un archivo scala que contenía un código de prueba anotado y seleccionar RunAs-> Junit, siempre que hubiera agregado la referencia de biblioteca para JUnit. –

+0

Sí, eso parece funcionar para mí también, aunque para mi proyecto ejecutar un conjunto completo de pruebas es más útil. No funcionó cuando traté de crear un archivo .scala con las anotaciones JUnit4 para crear un conjunto de mis pruebas. – gbrown

7

Hay una página wiki en el sitio web ScalaIDE en how to run Scala unit tests in Eclipse. Si tiene problemas específicos con la ejecución de pruebas unitarias características, le animo a publicar mensajes en la lista de correo specs-users.

Eric.

+1

Si las listas de correo fueran suficientes para todos, entonces el mundo no necesitaría Stack Overflow –

+0

Estoy de acuerdo, no fue una respuesta muy útil por mi cuenta :-) – Eric