如何在子项目specs2运行中让sbt使用正确的类加载器?

安东尼奥·萨拉萨尔·卡多佐

我在使用类加载器和specs2 3.8.7+时遇到了一些奇怪的问题。因为类加载器似乎由sbt管理,所以我在这里专门询问sbt的行为。

我提出了一个示例项目,在Shadowfiend / specs2-concurrent-boom-boom上演示了Github上的问题正如观察到的那样,问题在于,如果我运行all project1/test project2/test,project2最终可能会使用线程上下文类加载器,该类加载器是ClasspathFilter引用project1而不是project2的对象,反之亦然。在某些情况下,项目1的工人将同时引用项目2,ClasspathFilter而项目2的工人将同时引用项目1 ClasspathFilter

我在几个地方插入了一些断点,并且看到ForkJoinPool即使specs2实际运行时也只为specs2生成一个断点all project1/test project2/test,即使使用fork:= true。不能100%确定该池中的所有线程是否最终将使用相同的classloader父级或其他名称,但是似乎可能是问题的根源?

我在这里不太深入,但是希望您对sbt中的类加载器与sbt产生的测试框架之间的预期交互有任何见解。

杰尔斯

这在Specs2 4.0.1中已修复。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在SBT中管理可变的子项目位置?

如何在sbt shell中设置子项目的设置(不使用project命令)?

如何在jar中包含子项目类?

如何在ScalaTest中使用Specs2中的===语法

如何在SBT 0.13中动态获取子项目列表

如何在sbt shell中为所有子项目设置值?

如何在具有多个子项目的SBT项目中覆盖子项目中的设置

在sbt中编译子项目

SBT使用集合创建子项目

在配置阶段如何使用相邻子项目中的类

如何在Maven中处理子项目依赖项

如何在Listview中添加子项目和空间

如何在visual studio中隐藏子项目模板?

如何在PhpStorm / WebStorm中调试angular2种子项目?

如何在sbt多项目构建中获取子项目路径

如何使离子项目允许在Ionic 2中溢出?

如何使用jq更新json文件中的子项目?

SBT从子项目运行主要方法

子项目的sbt运行失败,并显示“协议错误”

sbt 子项目:dependsOn

SBT子项目测试类路径之谜

如何在Scala / Specs2中使用Mockito模拟返回AnyVal的函数?

如何在子项目中引用自定义SBT设置

使SBT子项目中的编译操作依赖于其他子项目的编译,而无需将其添加到类路径中

如何在specs2 2.4而不是specs2 2.3.x上使用playframework 2.3

播放子项目:如何转换为build.sbt

如何使SBT子项目具有多个Scala版本?

在SBT的多项目构建中,如何在另一个子项目中使用对象/类型?

specs2:如何使用“ failtrace”选项