Ecco la pagina Scalatest sull'uso del runner e la discussione estesa sulle opzioni -t
e-z
.
Questo post mostra quali comandi funzionano per un file di test che utilizza FunSpec
.
Ecco il file di 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)""")
}
}
}
Questo comando esegue i quattro test nel iLike
blocco di descrizione (dalla riga di comando SBT):
testOnly *CardiBSpec -- -z iLike
Puoi anche usare le virgolette, quindi funzionerà anche:
testOnly *CardiBSpec -- -z "iLike"
Questo eseguirà un singolo test:
testOnly *CardiBSpec -- -z "works with multiple arguments"
Questo eseguirà i due test che iniziano con "funziona con":
testOnly *CardiBSpec -- -z "works with"
Non riesco a ottenere l' -t
opzione per eseguire alcun test nel CardiBSpec
file. Questo comando non esegue alcun test:
testOnly *CardiBSpec -- -t "works with multiple arguments"
Sembra che l' -t
opzione funzioni quando i test non sono nidificati in describe
blocchi. Diamo un'occhiata a un altro file di test:
class CalculatorSpec extends FunSpec {
it("adds two numbers") {
assert(Calculator.addNumbers(3, 4) === 7)
}
}
-t
può essere utilizzato per eseguire il singolo test:
testOnly *CalculatorSpec -- -t "adds two numbers"
-z
può essere utilizzato anche per eseguire il singolo test:
testOnly *CalculatorSpec -- -z "adds two numbers"
Vedi questo repository se desideri eseguire questi esempi.