使用sbt测试Scala编译时行为

Bru*_*eth 5 scala sbt

测试运行时行为已有很好的文档记录,但随着强大的类型系统和宏系统的出现,人们可能会对测试编译时行为感兴趣.

例如,在编写提供编译时保证的库时.假设我正在构建一组测试匹配器,并且我想确保匹配器类型安全,就像我声称的那样.

List(1,2) must beEqualTo(Set(1,2)) // should fail at compile-time
Run Code Online (Sandbox Code Playgroud)

我可以在scala编译器项目中看到,大多数测试都是功能测试,其中编译器输出通过将其与参考文件进行比较来断言.这样的测试是否有约定?一个SBT插件?

谢谢