2009-07-07 13 views
16

Mi compañía está empezando a escribir algunos códigos usando Scala. Me han movido a este proyecto, y soy un gran fan de TDD, por lo que me gustaría tener un marco de prueba de unidad en su lugar. Sin embargo, el sistema de compilación que estamos utilizando para este proyecto es Maven, y eso no va a cambiar, por una variedad de razones.¿Existe una herramienta de prueba de la unidad Scala que se integre bien con Maven?

He revisado ScalaTest y ScalaCheck, y ambos parecen tener problemas con la integración de Maven. Varias publicaciones en el foro que he visto en las búsquedas de Google indican que algunas de las Suites incluidas con ScalaTest no se ejecutarán bajo el plugin maven-scala, y no he podido encontrar ninguna información sobre la ejecución de ScalaCheck en la prueba de Maven. Gol.

¿Alguien puede indicarme que ScalaTest/ScalaCheck funciona de manera confiable con Maven, o sugerir una alternativa?

Respuesta

10

También puede usar specs para declarar especificaciones y ejecutarlas como pruebas JUnit con Maven. Esto funciona bien, como se describe aquí: http://code.google.com/p/specs/wiki/RunningSpecs#Run_your_specification_with_JUnit4

Si tiene algún problema al respecto, publique un correo en la lista de correo de los usuarios.

Gracias,

Eric.

PD: también puede usar ScalaTest y ScalaCheck de las especificaciones si desea acceder a algunas de estas funciones de bibliotecas.

+0

me gusta especificaciones, y se encontró que sea fácil de ejecutar desde dentro de Eclipse como pruebas JUnit. –

3

Para responder a mi propia pregunta: Parece que el paquete JUnit4Runner located here proporciona el pegamento necesario para integrar la funcionalidad completa de ScalaTest con Maven. Además, corre el rumor de que la próxima versión de ScalaTest incluirá algo como esto.

14

ScalaTest 1.0 tiene:

org.scalatest.junit.JUnitRunner

Se puede utilizar con la anotación RunWith de JUnit. A Maven le gusta eso. También hay un complemento de Maven ahora para ScalaTest, escrito por Jon-Anders Teigen. En este momento tendrá que agarrarlo de la página GitHub Jon-Anders:

http://github.com/teigen/maven-scalatest-plugin

Pronto plan para desplegar que "oficialmente" en un repositorio Maven.

Plugin oficialmente implementado en Maven Central.

14

Soy consciente de que ha sido contestada, pero la respuesta más completa que encontré para usar Scalatest con Maven, específicamente a través de la línea de comandos mvn test, es http://jpz-log.info/archives/2009/09/29/scalatest-in-maven/

añado esta información aquí porque cuando google para Scalatest y Maven configuraciones de esta las preguntas llegaron bastante alto en los resultados, pero no proporcionaron una respuesta satisfactoria (en mi caso).

Básicamente:

  • complemento Scala a su pom, como de costumbre, así como scalatest (versión> 1.0) y junit
  • añadir @RunWith(classOf[JUnitRunner]) como una anotación de clase sobre sus especificaciones
  • tell experto-segura-plugin para incluir **/*Spec.class

En sus archivos Spec.scala:

import org.scalatest.junit.JUnitRunner 
import org.junit.runner.RunWith 
import org.scalatest.Spec 
import org.scalatest.matchers.ShouldMatchers 

@RunWith(classOf[JUnitRunner]) 
class AutomatonSpec extends Spec with ShouldMatchers { 
    (...) 
} 

En su pom.xml:

<build> 
    <plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-surefire-plugin</artifactId> 
     <configuration> 
     <includes> 
      <include>**/*Spec.class</include> 
     </includes> 
     </configuration> 
    </plugin> 
    </plugins> 
</build> 
+6

Solo un comentario, con Maven 3.0 la descripción del complemento debe estar dentro de la sección '' y no ''. – gpampara

+2

El ' **/* Spec.class' fue una gran ayuda para mí. ¡Gracias! –

+0

actualizó esta respuesta según @gpampara comenta que estaba más que feliz de descubrir ... :) – jopasserat

1

Hay algunas unidades de prueba de unidad útiles f o Scala: ScalaCheck ScalaCheck es una implementación de Scala de la biblioteca QuickCheck para Haskell. Trata de mantener la apariencia de QuickCheck tanto como sea posible, a la vez que está abierto para mejoras y extensiones que pueden facilitar la tarea de pruebas aleatorias basadas en propiedades de los programas de Scala. Equipo: Rickard Nilsson. Requiere: Scala 2.6.0 o más reciente. Documentación: Guía del usuario.

Rehersal Rehersal es un marco de pruebas para Scala, que pretende ser una sustitución más fácil de usar para Sunit en la biblioteca estándar. Equipo: Raphael Cohn.

ScalaTest ScalaTest es una herramienta de prueba gratuito de código abierto para Java Scala y programadores. Está escrito en Scala y le permite escribir pruebas en Scala para probar el código de Scala o Java. Se lanzó bajo la licencia de código abierto Apache 2.0. Equipo: Bill Venners.

Scala Especificaciones Especificaciones es un marco de comportamiento accionada por diseño que proporciona: un lenguaje sencillo y escrito para crear especificaciones; matchers para especificar propiedades de código; integración con JUnit, Scalacheck y jMock2; un marcador similar a un patrón; posibilidades de estructurar y redactar especificaciones, y reutilizar ejemplos a través de especificaciones; tablas de datos para agrupar varios ejemplos de datos a la vez. Equipo: Eric Torreborre, David Bernard, Jorge Ortiz.

Desde: http://www.scala-lang.org/node/1209#program_testing

Cuestiones relacionadas