我正在将Scalatest的AsyncFeatureSpec
与parallelExecution
一起使用。
我们有一个要求,我需要在每次测试用例执行结束时立即记录整个测试日志。
以下是我用来实现该目标的代码的一部分
trait BaseFeatureSpec extends AsyncFeatureSpec
with BeforeAndAfterAllConfigMap
with BeforeAndAfter
with BeforeAndAfterEach
with Matchers
with OptionValues
with Inside
with Inspectors
with GivenWhenThen
with ParallelTestExecution
{ this: Suite =>
private val logger = MyLogger(this.getClass)
val testRunID = System.getProperty("testRunID")
val fulllog = new StringBuilder // this builds the log inside test
override def afterEach() {
implicit val loggingContext = MyLoggerFactory(
Map(
"testid" -> getRandomUUID,
"TestRunId"-> testRunID
)
)
fulllog.append("***************************************END OF TEST ***************************************")
logger.info(fulllog.mkString(""))
try super.afterEach()
finally fulllog.clear()
}
}
如果我可以在afterEach
方法中获得实际的测试名称和运行状态,那就太好了。这可以实现吗?达到要求的最佳方法是什么?