簡體   English   中英

在SBT中測試initialCommands

[英]Test initialCommands in SBT

我的build.sbt有一個子項目,其中的initialCommands設置相當長,包括導入列表和一些定義。 我想將其作為常規CI的一部分進行測試,因為否則,在重構代碼后,我不會注意到破壞更改。 我不清楚該怎么做。

  1. 僅僅運行sbt console似乎並不能解決問題,因為即使沒有編譯代碼,總會有一個“成功”的退出代碼。
  2. 將代碼移到特殊源文件中定義的對象中將無濟於事,因為我需要顯示導入列表(並且我不想使我的整個代碼庫復雜化)。
  3. 將代碼移到源文件中,然后使用:load也總是可以成功退出代碼。
  4. 我發現了關於scala -e但這在我的機器上做奇怪的事情(請參見下面的錯誤日志)。

這是Scala 2.12。

$ scala -e '1'  
cat: /release: No such file or directory
Exception in thread "main" java.net.UnknownHostException: <my-host-name-here>: <my-host-name-here>: Name or service not known

您可以生成一個文件,然后像運行其他任何測試文件一樣運行它:

(sourceGenerators in Test) += Def.task {
  val contents = """object TestRepl {
{{}}
}""".replace("{{}}", (initialCommands in console).value)
  val file = (sourceManaged in Test).value / "repltest.scala"
  IO.write(file, contents)
  Seq(file)
}.taskValue

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM