如何在Scala测试中将自定义信息传递给Reporter?

时间:2019-11-19 13:38:04

标签: scala scalatest scalatest-maven-plugin

我们的scala测试用例为ex调用REST API。创建用户,并通过分析输出响应来检查是否实际创建了userId。 如果REST API引发任何错误,则由于断言条件(assert(userId!=“”)),userId为空,并且customReport将事件显示为org.scalatest.exceptions.TestFailedException: "" equaled ""为TestFailed

有没有一种方法可以将REST API的响应传递给报告程序。 请告知。

class CustomReport extends Reporter {


  override def apply(event: Event): Unit = {

}

}

1 个答案:

答案 0 :(得分:0)

例如,考虑通过clue提供有关失败的自定义信息,

$score = 'MATCH(a.titre, a.intro, a.contenu) AGAINST (:q boolean)'
$this->createQueryBuilder('a')
        ->select('a.id')
        ->andWhere("{$score} > 0")
        ->orderBy($score, 'DESC')
        ->setParameter('q', $query)

assert(userId != "", myCustomInformation)

withClue(myCustomInformation) { userId should not be empty } 可能位于

customInformation

这是一个可行的例子

case class MyCustomInformation(name: String, id: Int)
val myCustomInformation = MyCustomInformation("picard", 42)

输出

import org.scalatest._

class ClueSpec extends FlatSpec with Matchers {
  case class MyCustomInformation(name: String, id: Int)

  "Tests failures" should "annotated with clues" in {
    withClue(MyCustomInformation("picard", 42)) {
      "" should not be empty
    }
  }
}

有关自定义报告程序的示例,请考虑https://stackoverflow.com/a/56790804/5205022