用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