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

scala – 测试中的SBT清理钩子

发布时间:2020-12-16 19:15:38 所属栏目:安全 来源:网络整理
导读:SBT有一个很好的钩子,允许你在所有测试运行后执行任意代码: testOptions in Test += Tests.Cleanup( () = println("Cleanup")) 这样可行. 我的问题是:我想做一些实际的清理(例如停止一些服务)但我无法导入我在同一个构建文件中声明的任何依赖项.有没有办法
SBT有一个很好的钩子,允许你在所有测试运行后执行任意代码:

testOptions in Test += Tests.Cleanup( () => println("Cleanup"))

这样可行.
我的问题是:我想做一些实际的清理(例如停止一些服务)但我无法导入我在同一个构建文件中声明的任何依赖项.有没有办法做到这一点?我想我需要将这些放在sbt类路径或其他东西上,但我似乎无法在文档中找到它.

附:我可能在错误的位置执行此操作,是否有更好的地方在所有测试运行后关闭事物?)

解决方法

补充了venechka的答案:我正在使用Specs2运行集成测试,并且在规格中无法知道所有测试何时运行.所以我解决了它几乎就像venechka和你自己已经指出的那样,通过从项目中加载一个在初始化时进行清理的类:

testOptions in IntegrationTest += Tests.Cleanup( (loader: java.lang.ClassLoader) => {
  loader.loadClass("com.mypackage.IntegrationTestCleanup").newInstance
} )

(编辑:李大同)

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

    推荐文章
      热点阅读