运行 来自单个 spec2s parent 规范的 specs2 规范列表
Running list of specs2 specifications from a single spec2s parent specification
我目前正在开发基于 maven 的 scala 项目,其中包含一系列 specs2 规范测试,并且我正在使用 Intellij 2020.2 和 scala 2.12.10 以及 specs2 版本 4.9.4
我能够 运行 每个规范都没有问题,但是我有问题 运行 使用 IntelliJ 依次使用 beforeAll 和 afterAll 进行所有测试似乎没有按预期工作(但在 运行个人)。
我正在考虑创建一个 parent 规范,它创建一个包含所有 children 规范的列表,然后执行它们 - 希望这样我有更多的控制权。
我的 'children' 规范使用 mutable.Specification 并沿用了:
class BookmarkSpecs2(implicit ec: ExecutionEnv) extends Specification
with BeforeAfterAll
with Matchers
with FutureMatchers
with EmbedMongod {
val prefix = "mongodb"
val database = "bcTest"
val domain = "localhost"
val port = 12340
sequential
"Update items" should {
"adding" in {
...
}
}
注意包含 class 的变量 (implicit ec: ExecutionEnv)
对于我的 parent 规范,我一直在尝试:
import org.specs2.Specification
import org.specs2.concurrent.ExecutionEnv
import org.specs2.specification.core.SpecStructure
class AllTestsSpecs2(implicit ec: ExecutionEnv) extends Specification {
def is: SpecStructure = sequential ^ s2"""
${"bookmark" ~ bm}
"""
def bm = new BookmarkSpecs2()
}
通过 IntelliJ 执行规范时显示:
Testing started at 10:36 AM ...
/opt/jdk/jdk8u265-b01/bin/java -javaagent:/home/colinbester/Projects/idea-IC-202.6397.94/lib/idea_rt.jar=46535:/home/colinbester/Projects/idea-IC-202.6397.94/bin -Dfile.encoding=UTF-8 -classpath ... org.jetbrains.plugins.scala.testingSupport.specs2.Specs2Runner -s com.besterdesigns.bc.rest.AllTestsSpecs2 -showProgressMessages true
Process finished with exit code 0
实际上 运行 没有任何 children 测试。
很确定我在这里遗漏了一些东西,希望能在正确的方向上轻推。
链接规范可以通过传递 all
参数来执行(可用参数列表可用 here)。
在 IntelliJ specs2 中,属性需要指定为 Java 系统属性,因此您需要在 IntelliJ 运行 配置中指定 -Dspecs2.all
。
我目前正在开发基于 maven 的 scala 项目,其中包含一系列 specs2 规范测试,并且我正在使用 Intellij 2020.2 和 scala 2.12.10 以及 specs2 版本 4.9.4
我能够 运行 每个规范都没有问题,但是我有问题 运行 使用 IntelliJ 依次使用 beforeAll 和 afterAll 进行所有测试似乎没有按预期工作(但在 运行个人)。
我正在考虑创建一个 parent 规范,它创建一个包含所有 children 规范的列表,然后执行它们 - 希望这样我有更多的控制权。
我的 'children' 规范使用 mutable.Specification 并沿用了:
class BookmarkSpecs2(implicit ec: ExecutionEnv) extends Specification
with BeforeAfterAll
with Matchers
with FutureMatchers
with EmbedMongod {
val prefix = "mongodb"
val database = "bcTest"
val domain = "localhost"
val port = 12340
sequential
"Update items" should {
"adding" in {
...
}
}
注意包含 class 的变量 (implicit ec: ExecutionEnv)
对于我的 parent 规范,我一直在尝试:
import org.specs2.Specification
import org.specs2.concurrent.ExecutionEnv
import org.specs2.specification.core.SpecStructure
class AllTestsSpecs2(implicit ec: ExecutionEnv) extends Specification {
def is: SpecStructure = sequential ^ s2"""
${"bookmark" ~ bm}
"""
def bm = new BookmarkSpecs2()
}
通过 IntelliJ 执行规范时显示:
Testing started at 10:36 AM ...
/opt/jdk/jdk8u265-b01/bin/java -javaagent:/home/colinbester/Projects/idea-IC-202.6397.94/lib/idea_rt.jar=46535:/home/colinbester/Projects/idea-IC-202.6397.94/bin -Dfile.encoding=UTF-8 -classpath ... org.jetbrains.plugins.scala.testingSupport.specs2.Specs2Runner -s com.besterdesigns.bc.rest.AllTestsSpecs2 -showProgressMessages true
Process finished with exit code 0
实际上 运行 没有任何 children 测试。
很确定我在这里遗漏了一些东西,希望能在正确的方向上轻推。
链接规范可以通过传递 all
参数来执行(可用参数列表可用 here)。
在 IntelliJ specs2 中,属性需要指定为 Java 系统属性,因此您需要在 IntelliJ 运行 配置中指定 -Dspecs2.all
。