加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 并行执行测试

发布时间:2020-12-16 09:45:59 所属栏目:安全 来源:网络整理
导读:我注意到SBT并行运行我的specs2测试。这似乎是好的,除了我的一个测试涉及从文件读写,因此不可预知地失败,例如。见下文。 有没有更好的选择 将所有测试设置为串行运行, 为每个测试使用单独的文件名和拆除? class WriteAndReadSpec extends Specification
我注意到SBT并行运行我的specs2测试。这似乎是好的,除了我的一个测试涉及从文件读写,因此不可预知地失败,例如。见下文。

有没有更好的选择

>将所有测试设置为串行运行,
>为每个测试使用单独的文件名和拆除?

class WriteAndReadSpec extends Specification{
  val file = new File("testFiles/tmp.txt")

  "WriteAndRead" should {
    "work once" in {
      new FileWriter(file,false).append("Foo").close
      Source.fromFile(file).getLines().toList(0) must_== "Foo"
    }
    "work twice" in {
      new FileWriter(file,false).append("Bar").close
      Source.fromFile(file).getLines().toList(0) must_== "Bar"
    }
  }

  trait TearDown extends After {
    def after = if(file.exists) file.delete
  }
}

解决方法

除此之外,您还必须了解specs2默认情况下同时运行规范的所有示例。

您仍然可以声明,对于给定的规范,示例必须顺序执行。为此,您只需将sequential添加到您的规范的开头:

class WriteAndReadSpec extends Specification{
  val file = new File("testFiles/tmp.txt")

  sequential

  "WriteAndRead" should {
   ...
  }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读