Scala 再次调用任务以查看副作用

Scala 再次调用任务以查看副作用,scala,sbt,Scala,Sbt,我试图围绕我的插件编写一些测试,以断言没有对各种命令的调用执行不必要的工作 但是,似乎不可能第二次调用任务,即使是在一个任务中。e、 g.在下面的例子中,“HELLO”和“再见”之间没有发生任何事情,因为从sbt宏重写AST显然只是重复使用相同的引用: val testfastciletask=Def.taskDyn{ (在编译中编译)。值 println(“你好,世界!”) 定义任务{ (在编译中编译)。值 println(“再见,世界!”) } } 有没有办法强迫任务第二次运行 即使创建一

我试图围绕我的插件编写一些测试,以断言没有对各种命令的调用执行不必要的工作

但是,似乎不可能第二次调用
任务
,即使是在一个任务中。e、 g.在下面的例子中,“HELLO”和“再见”之间没有发生任何事情,因为从
sbt
宏重写AST显然只是重复使用相同的引用:

val testfastciletask=Def.taskDyn{
(在编译中编译)。值
println(“你好,世界!”)
定义任务{
(在编译中编译)。值
println(“再见,世界!”)
}
}
有没有办法强迫任务第二次运行


即使创建一个只运行
compile
的虚拟任务,也不会再次调用
compile
。我可以确认,在sbt REPL中,第二次键入
compile
肯定会在屏幕上做很多事情。

不,重复数据消除仍然会发生,因为通常情况下,您不希望在这种情况下编译两次。如果用于测试,您可以定义自己的命令或使用脚本插件(正如您现在所做的那样)。

谢谢。测试框架真的很好,无论如何我都应该使用它。