如何执行单个嵌套的 ScalaTest Suite?
Posted
技术标签:
【中文标题】如何执行单个嵌套的 ScalaTest Suite?【英文标题】:How can I execute a single nested ScalaTest Suite? 【发布时间】:2021-03-02 02:37:28 【问题描述】:在 ScalaTest 中,可以通过覆盖 nestedSuites
方法来嵌套套件。当在几个不相关的不同套件中需要昂贵的初始化资源(例如来自 testcontainers 库的容器)时,这很有用。然后可以在外部套件的beforeAll
方法中初始化资源,将其作为构造函数参数传递给嵌套套件,并在afterAll
方法中清理它。
但是有一个缺点:不能再使用 sbt 的 testOnly
命令启动内部套件。如何单独运行这些内部套件?
【问题讨论】:
【参考方案1】:虽然 sbt 的内部确实以 NestedSuiteSelector 类的形式对此进行了规定,但这并没有通过 testOnly
命令公开。因此,目前唯一的解决方案是运行 ScalaTest Runner 并传递适当的命令行参数:
test:runMain org.scalatest.tools.Runner -s my.project.OuterSuite -i my.project.InnerSuite -o
更多细节可以在文档中找到:http://doc.scalatest.org/3.1.1/org/scalatest/tools/Runner$.html
【讨论】:
以上是关于如何执行单个嵌套的 ScalaTest Suite?的主要内容,如果未能解决你的问题,请参考以下文章