5
votes

Comment exécuter des suites de tests séquentiellement dans ScalaTest / SBT?

Comment exécuter des suites de tests séquentiellement dans ScalaTest / SBT?

Par exemple si j'ai ces suites de tests A, B et C je veux m'assurer que les tests de A seront exécutés en premier puis ceux de B puis ceux de C.

Y a-t-il une configuration que je peux faire dans Scalatest ou SBT?

Merci.


0 commentaires

3 Réponses :


1
votes

essayez d'utiliser parallelExecution dans Test: = false


2 commentaires

Bonjour Raj. Merci pour votre réponse. Pour ma compréhension, cette commande consiste plutôt à exécuter séquentiellement les tests de la même suite de tests.


Pour développer la réponse @Farah, l'affiche originale souhaitait exécuter certains tests en parallèle lorsqu'ils sont dans une suite de tests différente, mais les tests de la même suite doivent être exécutés séquentiellement.



2
votes

D'après la documentation http://doc.scalatest.org/1.7 /org/scalatest/Suite.html

Vous devez créer votre propre suite de tests comme suit:

FirstTest.scala

import org.scalatest.Suites
class MainTest extends Suites (new FirstTest,new SecondTest)

SecondTest.scala

import org.scalatest.{DoNotDiscover, FunSuite}

@DoNotDiscover
class SecondTest extends FunSuite{

  test("second test"){
    assert(2 == 2)
  }
}

MainTest.scala

import org.scalatest.{DoNotDiscover, FunSuite}

@DoNotDiscover
class FirstTest extends FunSuite {

  test("first test"){
    assert(1 == 1)
  }

}

Maintenant, si vous exécutez le test sbt, cela fonctionne correctement.

Notes: la propriété @DoNotDiscover est obligatoire. cela évite les comportements inattendus comme l'exécution de FirstTest et SecondTest après l'exécution de la MainSuite qui sont déjà exécutées les deux suites de tests.

J'espère que cela a été utile


1 commentaires

Je pense que c'est le meilleur moyen, et est également indépendant de l'outil de construction (sbt, gradle, ...) que vous utilisez.



1
votes

Comme raj mehra l'a dit, la solution est de configurer pour exécuter les tests non en parallèle.

parallelExecution dans le test: = false

Voici la documentation qui l'explique: Exécution parallèle SBT

À partir de là:

Comme précédemment, parallelExecution in Test contrôle si les tests sont mappés à des tâches distinctes.


0 commentaires