Aqui está a página do Scalatest sobre o uso do corredor e a discussão estendida sobre as opções -t
e-z
.
Esta postagem mostra quais comandos funcionam para um arquivo de teste que usa FunSpec
.
Aqui está o arquivo de teste:
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)""")
}
}
}
Este comando executa os quatro testes no iLike
bloco de descrição (na linha de comando do SBT):
testOnly *CardiBSpec -- -z iLike
Você também pode usar aspas, assim também funcionará:
testOnly *CardiBSpec -- -z "iLike"
Isso executará um único teste:
testOnly *CardiBSpec -- -z "works with multiple arguments"
Isso executará os dois testes que começam com "funciona com":
testOnly *CardiBSpec -- -z "works with"
Não consigo a -t
opção de executar nenhum teste no CardiBSpec
arquivo. Este comando não executa nenhum teste:
testOnly *CardiBSpec -- -t "works with multiple arguments"
Parece que a -t
opção funciona quando os testes não são aninhados em describe
blocos. Vamos dar uma olhada em outro arquivo de teste:
class CalculatorSpec extends FunSpec {
it("adds two numbers") {
assert(Calculator.addNumbers(3, 4) === 7)
}
}
-t
pode ser usado para executar o único teste:
testOnly *CalculatorSpec -- -t "adds two numbers"
-z
também pode ser usado para executar o teste único:
testOnly *CalculatorSpec -- -z "adds two numbers"
Consulte este repositório se desejar executar esses exemplos.