用SBT構建一個Scala程序,我想在構建的JAR文件中禁用斷言,但是我想在測試期間啓用斷言。這包括主要類中陳述的主張。 明顯SBT鍵是:在用SBT構建的jar中禁用斷言,但在測試中啓用?
scalacOptions in Compile ++= Seq(
"-optimise",
"-Xelide-below", "3000",
"-Xdisable-assertions")
scalacOptions in Test ++= Seq("-optimise")
不幸的是,這並不工作:JAR文件確實已禁用斷言,但這樣做的測試。例如,ScalaTests
it("should have assertions enabled in test classes") {
intercept[AssertionError] {
Predef.assert(false, "Assertions are enabled in test classes")
}
}
it("should have assertions enabled in main classes") {
intercept[AssertionError] {
MainClass.assertFalse
}
}
都失敗,錯誤:Expected exception java.lang.AssertionError to be thrown, but no exception was thrown.
我很驚訝的是,2年後,這個問題仍然沒有得到解決。人們在代碼中如何使用斷言? – guyvdb 2016-11-14 06:07:38