Voici la page Scalatest sur l' utilisation du runner et la discussion approfondie sur les options -t
et-z
.
Cet article montre quelles commandes fonctionnent pour un fichier de test qui utilise FunSpec
.
Voici le fichier de test:
package com.github.mrpowers.scalatest.example
import org.scalatest.FunSpec
class CardiBSpec extends FunSpec {
describe("realName") {
it("returns her birth name") {
assert(CardiB.realName() === "Belcalis Almanzar")
}
}
describe("iLike") {
it("works with a single argument") {
assert(CardiB.iLike("dollars") === "I like dollars")
}
it("works with multiple arguments") {
assert(CardiB.iLike("dollars", "diamonds") === "I like dollars, diamonds")
}
it("throws an error if an integer argument is supplied") {
assertThrows[java.lang.IllegalArgumentException]{
CardiB.iLike()
}
}
it("does not compile with integer arguments") {
assertDoesNotCompile("""CardiB.iLike(1, 2, 3)""")
}
}
}
Cette commande exécute les quatre tests du iLike
bloc describe (à partir de la ligne de commande SBT):
testOnly *CardiBSpec -- -z iLike
Vous pouvez également utiliser des guillemets, cela fonctionnera donc également:
testOnly *CardiBSpec -- -z "iLike"
Cela exécutera un seul test:
testOnly *CardiBSpec -- -z "works with multiple arguments"
Cela exécutera les deux tests qui commencent par "fonctionne avec":
testOnly *CardiBSpec -- -z "works with"
Je ne peux pas avoir la -t
possibilité d'exécuter des tests dans le CardiBSpec
fichier. Cette commande n'exécute aucun test:
testOnly *CardiBSpec -- -t "works with multiple arguments"
Il semble que l' -t
option fonctionne lorsque les tests ne sont pas imbriqués dans des describe
blocs. Jetons un œil à un autre fichier de test:
class CalculatorSpec extends FunSpec {
it("adds two numbers") {
assert(Calculator.addNumbers(3, 4) === 7)
}
}
-t
peut être utilisé pour exécuter le test unique:
testOnly *CalculatorSpec -- -t "adds two numbers"
-z
peut également être utilisé pour exécuter le test unique:
testOnly *CalculatorSpec -- -z "adds two numbers"
Consultez ce dépôt si vous souhaitez exécuter ces exemples.