นี่คือหน้า Scalatest บนโดยใช้นักวิ่งและการอภิปรายขยายบน-t
และ-z
ตัวเลือก
FunSpec
โพสต์นี้แสดงให้เห็นว่าสิ่งที่คำสั่งการทำงานสำหรับไฟล์ที่ใช้ทดสอบ
นี่คือไฟล์ทดสอบ:
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)""")
}
}
}
คำสั่งนี้รันการทดสอบสี่ครั้งในiLike
บล็อกอธิบาย (จากบรรทัดคำสั่ง SBT):
testOnly *CardiBSpec -- -z iLike
คุณยังสามารถใช้เครื่องหมายคำพูดดังนั้นสิ่งนี้จะทำงาน:
testOnly *CardiBSpec -- -z "iLike"
สิ่งนี้จะทำการทดสอบครั้งเดียว:
testOnly *CardiBSpec -- -z "works with multiple arguments"
วิธีนี้จะทำการทดสอบสองครั้งที่เริ่มต้นด้วย "ทำงานร่วมกับ":
testOnly *CardiBSpec -- -z "works with"
ฉันไม่สามารถ-t
เรียกใช้การทดสอบใด ๆ ในCardiBSpec
ไฟล์ได้ คำสั่งนี้ไม่ได้ทำการทดสอบใด ๆ :
testOnly *CardiBSpec -- -t "works with multiple arguments"
ดูเหมือนว่า-t
ตัวเลือกจะทำงานเมื่อการทดสอบไม่ซ้อนในdescribe
บล็อก ลองดูที่ไฟล์ทดสอบอื่น:
class CalculatorSpec extends FunSpec {
it("adds two numbers") {
assert(Calculator.addNumbers(3, 4) === 7)
}
}
-t
สามารถใช้ในการรันการทดสอบเดียว:
testOnly *CalculatorSpec -- -t "adds two numbers"
-z
ยังสามารถใช้เพื่อเรียกใช้การทดสอบเดียว:
testOnly *CalculatorSpec -- -z "adds two numbers"
ดูrepo นี้หากคุณต้องการเรียกใช้ตัวอย่างเหล่านี้