unit-testing - intellijidea - scala para intellij
¿Cómo ejecuto un scala ScalaTest en la idea de IntelliJ? (9)
Estoy tratando de ejecutar una prueba de scala flatspec dentro de Intellij IDEA (última compilación de la comunidad, con el último complemento de Scala), pero sigo recibiendo errores de "Paquete de prueba vacío".
Intenté usar el menú normal "ejecutar" al hacer clic derecho, pero no funciona. También intenté crear una nueva configuración de ScalaTest, pero aún así el corredor no está tomando las pruebas.
Pude usar JScalaTest con la unidad, pero realmente preferiría usar la sintaxis de flatspec.
ACTUALIZACIÓN : anotar la clase con @RunWith(classOf[JUnitRunner])
tampoco ayuda
¡Gracias!
class SampleTestSpec extends FlatSpec with ShouldMatchers {
"test" should "fail" in {
"this" should equal ("that")
}
}
ACTUALIZACIÓN: Cambiar de ScalaTest a Spec, solucionó el problema. Todavía prefiero ScalaTest con FlatSpec, pero esto es lo suficientemente bueno. Código que funciona:
import org.specs._
object SampleTestSpec extends Specification {
"''hello world'' has 11 characters" in {
"hello world".size must be equalTo(113)
}
"''hello world'' matches ''h.* w.*''" in {
"hello world" must be matching("h.* w.*")
}
}
-teo
AFAIK, el JUnitRunner
es exactamente para esto.
En caso de que ayude a alguien, le di una nueva a Scala y fue por la forma en que había estructurado mi clase de prueba. tuve
class SomeTests extends FlatSpec {
def aTest = {
"This thing when that thing happens" should
"return some particular response" in {
// ... test body
}
}
}
El problema fue que envolví mi prueba en un método, sin darme cuenta de que, en este contexto, las pruebas deben estar al descubierto:
class SomeTests extends FlatSpec {
"This thing when that thing happens" should
"return some particular response" in {
// ... test body
}
}
Esto me funcionó: Editar configuraciones -> Tipo de prueba: Todo en el paquete
He podido ejecutar las pruebas FunSuite en IntelliJ sin ningún problema. Sin embargo, lo que he encontrado al trabajar con las pruebas FlatSpec es que debe hacer clic con el botón derecho del mouse o colocar el cursor en la definición real de la clase de prueba si usa Ctrl + Shift + F10 (es decir, ejecutar todas las pruebas) para que se ejecute correctamente. todas las pruebas definidas y evitar los frustrantes errores de "conjunto de prueba vacío".
Lo he estado ejecutando así (sin embargo, lo encuentro un poco detallado y probablemente se pueda reducir):
@RunWith(classOf[JUnitSuiteRunner])
class AuthorisationParserRunAsTest extends JUnit4(AuthorisationParserSpec)
object AuthorisationParserSpec extends Specification {
...
}
Me encontré con "Suite de prueba vacía". problema al ejecutar pruebas individuales en FlatSpec también. Reduje la causa raíz a un espacio en blanco al principio de la cadena de comportamiento.
Ex. En el siguiente código, la primera prueba se ejecutará, pero la segunda no (si se ejecuta individualmente). Esto se debe a la presencia de un espacio en blanco al principio de la cadena de comportamiento "no se ejecuta". Si lo quitas y lo ejecutas de nuevo, debería funcionar.
import org.scalatest.FlatSpec
class FlatSpecWhiteSpaceTest extends FlatSpec {
"TestWithNoEmptySpace" should "run" in {
runTest
}
"TestWithEmptySpace" should " not run" in {
runTest
}
def runTest(): Unit = {
val expectedValue = true
val actualValue = true
assert(expectedValue === actualValue)
}
}
- IDE: Intellij IDeA 2017.1C
- Versión Scala: 2.11.8
- Versión ScalaTest: 3.0.1
ScalaTest tiene una visión general de todas las posibilidades; Acabo de anotar todas las clases de prueba con
@RunWith(classOf[JUnitRunner])
Si IntelliJ no realiza las pruebas automáticamente, puede hacer lo siguiente:
En la Configuración de ejecución, cree una configuración de ejecución de ScalaTest y configure su "Tipo de prueba" en "Todo en el paquete" y su "Paquete de prueba" en el paquete que contiene sus pruebas.
Solo un poco tarde, pero he encontrado el mismo problema ( "Paquete de prueba vacío" ) Después de encontrar el rastreador de errores de IDEA, encontré una solución para mi caso:
Mi versión de scala
era 2.9.0-1
y scala-test
tiene la versión 2.8.*
.
Comenzó a funcionar después de actualizar scala-test
a la versión más reciente (igual que un scala).